-
Couldn't load subscription status.
- Fork 9.1k
HADOOP-19610. S3A: ITests to run under JUnit5 #7814
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
HADOOP-19610. S3A: ITests to run under JUnit5 #7814
Conversation
|
Seems to kick off the tests in parallel. There are three runs, the last with no tests executed. But its elapsed time is exactly those of the other two executions added up (16.38 + 12.42 |
|
comparison execution time note that both test runs were in a single process, so even if the log showed three test suites running at the same time, only one process is running I don't think that is good, because we do have shared state (filesystem cache etc) which will interfere with each other |
|
@steveloughran Thanks for picking this up. This was blocking dev work on S3A. |
b2d347f to
8249bb8
Compare
|
I'm doing another local run on this with the analytics profile, after which it is ready to merge. That is even though every mini yarn cluster refuses to come up with queue problems. I'm not convinced that is related as there have been recent changes near the failing yarn code. And we need this in so urgently that reducing the number of tests down to a limited few is still a success |
|
one failure being fixed elsewhere |
9fea0cb to
99198ef
Compare
hadoop-aws tests which need to be parameterized on a class level are configured to do so through the @ParameterizedClass tag. Filesystem contract test suites in hadoop-common have also been parameterized as appropriate. There are custom JUnit tags declared in org.apache.hadoop.test.tags, which add tag strings to test suites/cases declaring them. They can be used on the command line and in IDEs to control which tests are/are not executed. @FlakyTest "flaky" @loadtest "load" @RootFilesystemTest "rootfilesystem" @scaletest "scale" For anyone migrating tests to JUnit 5 * Methods which subclass an existing test case MUST declare the @test tag again -it is no longer inherited. * All overridden setup/teardown methods MUST be located and @BeforeEach/@AfterEach attribute added respectively * Subclasses of a parameterized test suite MUST redeclare themselves as a @ParameterizedClass, and the binding mechanism again. * Parameterized test suites SHOULD declare a pattern to generate an informative parameter value string for logs, IDEs and stack traces, e.g. @ParameterizedClass(name="performance-{0}") * Test suites SHOULD add a org.apache.hadoop.test.tags tag to declare what kind of test it is. These tags are inherited, so it may be that only shared superclasses of test suites need to be tagged. The abstract filesystem contract tests are NOT declared as integration tests -implementations MUST do so if they are integration tests.
Maybe better to actually push this into the implementations?
99198ef to
9baa3dd
Compare
|
rebased and with core tests working, just some minor failures. Also new tag Failures now yarn minicluster and multipart. I do suspect the multipart is related but I don't want it to hold up this (critical) patch. ITestS3ACommitterMRJob may be a test setup again as it is a sequence of tests. |
|
🎊 +1 overall
This message was automatically generated. |
|
checkstyles are all about test numbering _100() etc, so invalid |
|
I need this in ASAP as there's no way to validate any other PR: failures of their tests are meaningless. @slfan1989 @ahmarsuhail @mukund-thakur can I get an upvote on this? It isn't perfect, but it's test ony code and we can tune later |
@steveloughran Thanks for your contribution! I believe this PR is good enough, and we can go ahead and merge it. |
|
FYI, outstanding failures.
|
|
@steveloughran I'll follow up on the Yarn MiniCluster issue, but it might be later today. I've dealt with a similar issue before, so it might be helpful. The main cause is that during parallel testing, different unit tests are accessing the same configuration file, as some of the configurations are stored in directories like |
|
ahh, I see. I think temp dirs are set per process and a base test jobID. |
|
just discovered (Iceberg code) that assertj may limit stack traces, so you need to set |
Fixing parameterized ITests in hadoop-aws to work under Junit 5.
This is on top of PR #7785
For code changes:
LICENSE,LICENSE-binary,NOTICE-binaryfiles?