-
Notifications
You must be signed in to change notification settings - Fork 16
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
Enable parallel execution of tests #637
Conversation
b43d72b
to
26770f4
Compare
503ab1c
to
104550b
Compare
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.
New semaphore mechanism LGTM 🍾
for golden files overwritten in multiple tests.
104550b
to
d0440d4
Compare
@@ -103,16 +111,17 @@ golden_create_testnet_data mShelleyTemplate = | |||
generated'' = map (\c -> if c == '\\' then '/' else c) generated' | |||
void $ H.note generated'' | |||
|
|||
H.diffVsGoldenFile generated'' "test/cardano-cli-golden/files/golden/conway/create-testnet-data.out" | |||
bracketSem createTestnetDataOutSem $ | |||
H.diffVsGoldenFile generated'' "test/cardano-cli-golden/files/golden/conway/create-testnet-data.out" |
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 this test is run once, how does concurrent execution cause it to run multiple times?
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.
It's executed once. The problem is that this golden file is shared between multiple test cases, which are executed concurrently. So when we're testing golden files regeneration, two test cases see the file missing so they try to recreate file at the same time. This somehow is an issue on windows, which results in an exception here.
Changelog
Context
See an explanation in similar PR in node: IntersectMBO/cardano-node#5692
Before change:
After change
Checklist