-
Notifications
You must be signed in to change notification settings - Fork 274
Enable regression tests of weak memory model instrumentation #5937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
abc0896
to
f4499e3
Compare
Codecov Report
@@ Coverage Diff @@
## develop #5937 +/- ##
===========================================
+ Coverage 74.23% 75.01% +0.77%
===========================================
Files 1431 1431
Lines 155291 155294 +3
===========================================
+ Hits 115287 116499 +1212
+ Misses 40004 38795 -1209
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I must confess that I haven't read every line of this PR but I think I get the general picture. One concern : how often do the THOROUGH tests get run. Could we add it to the new version / release workflow?
I'll create a separate PR for this. |
Store the elements to be removed in a set until after the iteration is done, and then remove the chosen elements. The more standard approach could be returning the iterator to the next element in the remove-an-element function, but this requires larger changes here. Thus keeping it small and simple for now.
These regression tests are a selected subset (cf. README.txt) of the full set of available tests (stored in goto-instrument-wmm-full.tgz), and will ensure basic testing of the functionality implemented in goto-instrument. Test specifications were updated to work with current infrastructure.
Make all regression tests from the archive available (yet marking them as THOROUGH or KNOWNBUG to avoid including them by default). This avoids having an unused archive file bit-rotting in the repository. This commit was generated as follows: ``` set -e cd regression/goto-instrument-wmm-core/ tar xzf ../goto-instrument-wmm-full.tgz --strip-components=1 for f in $(tar tzf ../goto-instrument-wmm-full.tgz | sed 's#^goto-instrument-wmm-full/##') do [ -f $f ] || continue if git status --porcelain $f | grep -q '^?' then if [[ $(basename $f) == "test.desc" ]] then sed -i '1s/^CORE$/THOROUGH/' $f if ! grep -q EXIT $f then if grep -q "VERIFICATION FAILED" $f then sed -i '/SIGNAL=0/ i ^EXIT=10$' $f else sed -i '/SIGNAL=0/ i ^EXIT=0$' $f fi fi elif [[ $f =~ \.c$ ]] then clang-format -i $f fi git add $f else git checkout -- $f fi done git rm ../goto-instrument-wmm-full.tgz git commit -F - <<EOF Add regression tests from goto-instrument-wmm-full.tgz Make all regression tests from the archive available (yet marking them as THOROUGH or KNOWNBUG to avoid including them by default). This avoids having an unused archive file bit-rotting in the repository. This commit was generated as follows: \`\`\` $(<../../script.sh) \`\`\` EOF ```
Tag all *_OPT tests "glpk" and exclude them from test runs by default as we don't currently build with glpk by default.
Some of the tests that were previously imported as THOROUGH from the tar archive actually are failing and require further investigation.
These tests currently pass and each of them completes in under 1 second.
These regression tests are a selected subset (cf. README.txt) of the
full set of available tests (stored in goto-instrument-wmm-full.tgz),
and will ensure basic testing of the functionality implemented in
goto-instrument.