You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There have been some simple bugs that we've found or that have been reported by users. We also implemented some features in the compiler in a hurry in October/November to hit a paper deadline, with limited testing. This leads me to believe that we have a testing deficit.
Here are the results of auditing our tests.
Checked C repo tests.
These tests are in the repo under the test directory:
Parsing
checked_array_types.c: looks good.
declaration_bounds.c: needs some tests for null-terminated checked arrays and pointers.
interop_types.c: needs some tests for null-terminated checked arrays and pointers.
member_bounds.c: needs some tests for null-terminated checked arrays and pointers.
parameter_bounds.c: needs some tests for null-terminated checked arrays and pointers.
rel_align.c: need some tests with null-terminated array pointer types.
return_types.c: ditto
Typechecking
bounds.c:
missing tests of null-terminated pointer types.
missing tests that nt_array_ptrs of functions type are not allowed.
test arrays of function types?
checked_arrays.c: looks good.
checked_scope_basic.c: missing tests of null-terminated pointer types (++ open bug)
checked_scope_interfaces.c
missing tests of interface types implied by a "bounds" bounds declarations: int *x : bounds(x, x + 5)(++ open bug) [DONE]
for function parameters [DONE]
for struct members. [DONE]
missing tests of interface types with nt_array_ptr type [DONE]
missing tests of more complex constructed interface types (array of pointers, pointers to arrays, pointers to functions that takes types and arrays as arguments).
this is the place to add tests of typechecking local variables with bounds-safe interfaces.
need some tests where definitions and uses are in different checked scopes.
checked_scope_pragma:
missing positive tests of nt_array_ptr.
missing tests of more complex constructed types (array of pointers, pointers to arrays, and so on).
for local variables
*for itypes.
function_casts.c:
missing tests of function_casts in checked scopes/unchecked scopes involving interface types.
missing tests of assignments of arrays of function pointers where there are implicit casts of the array types.
interop.c:
rename this file or checked_scope_interfaces.c for symmetry in naming? Also rename so it is clear this is for bounds declarations
missing tests of itypes with null-terminated pointers/arrays.
interop_type_annotations.c: missing tests of itypes with null-terminated array and pointer types [DONE]
malloc_free.c: need to add tests for malloc/free of nt_array_ptr. Note that malloc needs to be done in unchecked code.
no_prototype_functions.c: need tests for null-terminated array and pointer types
pointer-types.c: looks good
redeclaration.c:
test redeclarations involving nt_array_ptr types (both parameters and as interface types). Should check conflicting nt_checked vs. checked declarations.
test declarations involving nt_checked array types. Should check conflicting nt_checked vs. checked declarations.
test redeclarations inside/outside of checked scopes
redeclare_libraries.cL audit to make sure all checked header files are included.
Static_checking
We need to create some Checked C repo tests for bounds declaration checking based on the
Checked C clang repo tests for bounds declaration checking. The clang repo tests included detailed tests of notes and error messages. We just want to indicate tests that should pass/fail in the Checked C repo.
Other things we need to do:
Need to check more complex bounds declarations for variables declared with initializers.
Need to check bounds declarations for static_casts.
Here is a detailed list of files:
bounds_decl_checking.c: Add testing of bounds declarations of
uses of variables with bounds-safe interfaces in checked scopes.
uses of variables with range bounds expressions.
calls to functions with parameters/returns with range bounds expressions.
calls in checked scopes to functions with bounds-safe interfaces.
bounds declarations with more complex expressions than variables.
initializers.c:
f1: test initializers for nt_array_ptr varaibles. This is also a no params function - that needs to be corrected.
Make it clear in comments that this is testing simple properties:
that checked variables should have initializers
that initialized arrays and array literals meet size requirements.
that initializers for null-terminated arrays have null terminators.
lexical equality.c: need tests for null-terminated pointers and arrays.
assignments.c: should check assignments with different types and different bounds expressions.
Dynamic-checking
bounds\bounds-safe-interfaces.c:
Need tests of null-terminated pointers, range expressions, and ptr types.
Check vs. unchecked scopes
bounds\nullterm_pointers.c: need tests of uses of parameters with null-terminated pointer and
array types.
Checked C clang repo tests
These tests are in the repo under test\CheckedC. Here is some preliminary analysis.
Top-level files
dump_bounds.c: need some dumps involving nt_array_ptr
Inferred_bounds
Calsl.c:
Need tests for calls with bounds-safe interface conversion (checked -> unchecked pointers)
Need tests for calls with void pointer conversions.
Need cross-product of the prior two.
Other files: need tests for uses of variables with bounds-safe interfaces, in/out of checked scope.
Dynamic checks
We need need tests involving variables with bounds-safe interfaces, an variables defined/used across unchecked and checked scopes.
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
There have been some simple bugs that we've found or that have been reported by users. We also implemented some features in the compiler in a hurry in October/November to hit a paper deadline, with limited testing. This leads me to believe that we have a testing deficit.
Here are the results of auditing our tests.
Checked C repo tests.
These tests are in the repo under the test directory:
Parsing
Typechecking
int *x : bounds(x, x + 5)
(++ open bug) [DONE]*for itypes.
Static_checking
We need to create some Checked C repo tests for bounds declaration checking based on the
Checked C clang repo tests for bounds declaration checking. The clang repo tests included detailed tests of notes and error messages. We just want to indicate tests that should pass/fail in the Checked C repo.
Other things we need to do:
Here is a detailed list of files:
Dynamic-checking
array types.
Checked C clang repo tests
These tests are in the repo under test\CheckedC. Here is some preliminary analysis.
Top-level files
Inferred_bounds
Dynamic checks
We need need tests involving variables with bounds-safe interfaces, an variables defined/used across unchecked and checked scopes.
The text was updated successfully, but these errors were encountered: