Skip to content

Conversation

@tahina-pro
Copy link
Member

This pull request generates test cases for 3d data format specifications using z3.

The latest (valid) build for this PR contains a Linux standalone binary package for EverParse as a build artifact called everparse, downloaded as everparse.zip. Warning: this .zip will extract many files and directories to the current directory.

Usage: bash everparse.sh <options> <files.3d>...

Supported scenarios

  • --z3_test MyModule.my_parser produces positive and negative test cases for my_parser defined in MyModule.3d
  • --z3_diff_test MyModule1.my_parser1,MyModule2.my_parser2 produces a set of test cases that are positive for my_parser1 but negative for my_parser2, and a set of test cases for the converse
  • --emit_smt_encoding produces the SMT encoding corresponding to the .3d files

Further options

  • --batch produces, compiles and runs a test program, test.exe, to check whether the generated test cases are actually accepted or rejected by the verified validator implementations for the given 3d parser specifications. This option is set by default when using the everparse.sh script from the binary package. Use --no_batch to disable it and only produce the test cases.
  • --z3_witnesses 18 produces 18 test cases.
  • --z3_test_mode pos (resp. --z3_test_mode neg) only produces positive (resp. negative) test cases with --z3_test. (If this option is not used, then 3d will produce both positive and negative tests.)
  • --z3_executable path/to/z3.exe to specify a path to the Z3 executable that should be used to generate the test cases. This option does not affect the verification of the generated F* files. Test cases are best generated with the latest z3 (4.12.2), but verification of the generated F* files works only with Z3 4.8.5 at the moment. The standalone binary package on Linux includes both versions of z3 and everparse.sh already sets --z3_executable accordingly.

huge speedup: all positive ELF._E_IDENT witnesses now found within 3 s
Perf issue with bitwise not
HUGE performance issues
@tahina-pro tahina-pro requested a review from nikswamy July 24, 2023 23:56
@tahina-pro tahina-pro merged commit 202bfb4 into master Sep 30, 2023
@tahina-pro tahina-pro deleted the _taramana_3d_z3_testgen branch September 30, 2023 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants