-
Notifications
You must be signed in to change notification settings - Fork 1
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
Tagging of test suites #350
Merged
Merged
Changes from 26 commits
Commits
Show all changes
40 commits
Select commit
Hold shift + click to select a range
b19b06c
tagging up to unit tests
katrinafyi 5c4abaa
add standardsystemtests and comment for annotatetestcase
katrinafyi cf69e97
ci: check for test tagging
katrinafyi 3f73558
ci: use tags to run tests
katrinafyi 334b182
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi aae397f
scalafmt
katrinafyi d7e02b7
ci: update message
katrinafyi c1a0524
use cancel() instead of assume(false)
katrinafyi 4ef3f7f
DifferentialTest marking. added TestCustomisation mixin
katrinafyi de8f664
tag remaining tests
katrinafyi 96ce9f5
add script. add some missing tags
katrinafyi 1da085b
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi 9ec8ae6
ci: add durations to test runner output
katrinafyi dc3ae4e
SATTest: remove smt.timeout option (it is set by command line)
katrinafyi fd9d70b
disable stack_pointer cases in memory region tests
katrinafyi 585bf05
extra spec tests
katrinafyi 09fd1e0
indirect call tests
katrinafyi 88b0873
tweak customised test messages, fix SimplifyMemorySystemTests
katrinafyi 43a81e4
fix testcustomisation case oopsie, use self-type instead of AnyFunSuite
katrinafyi 93abe5a
print current outcome of xfail tests
katrinafyi 15e8801
review: split ExpectFailure into TempFailure and NotImplemented
katrinafyi a77724a
move TestCustomisation into its own file
katrinafyi e407854
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi efa63f4
tests: update indirect call test modes after merge
katrinafyi 9a3e55b
scalafmt
katrinafyi 6f92d39
add script to execute scalatest runner
katrinafyi 86b0d89
IndirectCallTests: add remarks from review
katrinafyi 3684717
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi 25a25ca
add Slow tag, make check-test-tagging stricter
katrinafyi bf327c6
tag IntervalDSATest
katrinafyi bdc5055
IndirectCallTests: move to Analysis and un-mark some not implemented
katrinafyi 4160752
add some helpful commands to scalatest.sh
katrinafyi 6589b32
docs: add testing.md to describe some testing infrastructure
katrinafyi 44b7a36
IntervalDSATest: mark as broken
katrinafyi 4f475f2
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi cf92db5
IntervalDSATest: unbreak one test
katrinafyi 1eee5f9
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi 9e65f20
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi 01ed37d
Merge remote-tracking branch 'origin/main' into scalatest-grouping
katrinafyi 62f0aa5
IntervalDSATest: unbreak
katrinafyi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/bash -eu | ||
|
||
set -o pipefail | ||
|
||
test_dir=src/test | ||
|
||
echo '::group::All test suites:' | ||
tests="$(./mill test.testOnly -- -t '' -oW | tr -d ':' | sort)" | ||
echo "$tests" | ||
echo '::endgroup::' | ||
echo | ||
echo '::group::Disabled test suites:' | ||
grep '@test_util.tags.DisabledTest' --context=1 -R $test_dir | ||
echo '::endgroup::' | ||
echo | ||
|
||
ok=true | ||
echo '::group::Test suites with no tag annotations:' | ||
for t in $tests; do | ||
defn="$(grep 'class\s\+'"$t"'[ (]' --before-context=2 -R $test_dir)" | ||
if ! grep -q '@test_util.tags.' <<< "$defn"; then | ||
echo 'test suite has no `@test_util.tags.*` annotation:' >&2 | ||
grep 'class\s\+'"$t"'[ (]' -R $test_dir | ||
echo | ||
ok=false | ||
fi | ||
done | ||
echo '::endgroup::' | ||
|
||
$ok | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#!/bin/bash | ||
|
||
# Executes the full Scalatest runner (https://www.scalatest.org/user_guide/using_the_runner). | ||
# | ||
# This is needed to use some more advanced arguments of the runner, since `./mill test.run` | ||
# silently ignores some arguments (for example, -n and -l). | ||
|
||
# NOTE: executing the runner through this script may try to start a GUI. | ||
# to avoid this and use the console, pass -o. | ||
|
||
classes="$(./mill show test.compile | grep '"classes"' | cut -d'"' -f4 | cut -d: -f4)" | ||
|
||
if ! [[ -d "$classes" ]]; then | ||
echo "unable to determine mill class output directory: $classes" >&2 | ||
exit 1 | ||
fi | ||
|
||
exec ./mill test.runMain org.scalatest.tools.Runner -R "$classes" "$@" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
These should all be NotImplemented, they are not temporary recent regressions
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.
is that right? even when it "resolves" to an incorrect function? I would consider that a bug in the indirect call resolution.
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.
When does it do that?
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.
Oh it was only doing saying that it's resolving to incorrect functions (it wasn't actually, the tests just needed some minor updates) due to issues that were fixed in #357.
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.
If you mean jumptable/clang:BAP and jumptable/clang:GTIRB, it produces sound but imprecise results as-is for those, but this lack of precision is a long-standing issue that would require expanding the functionality of the indirect call resolution - it isn't a recent regression.
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.
That makes sense, thanks. What about jumptable/gcc:BAP jumptable/gcc:GTIRB which fail verification?
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.
Those correctly resolve the indirect calls but fail because they need specifications about the security level of the jumptable in the binary's data section, which isn't really possible to easily express with the current specification system.