Skip to content

Expanding tests run in coverage job #1676

Closed

Description

@Trott

I changed the configuration for https://ci.nodejs.org/view/All/job/node-test-commit-linux-coverage-daily/ to also run pummel and benchmark jobs.

Under "Execute Shell", I changed the last line from this:

NODE_TEST_DIR=${HOME}/node-tmp PYTHON=python COVTESTS="test-ci test-internet" make coverage -j $(getconf _NPROCESSORS_ONLN)

...to this:

NODE_TEST_DIR=${HOME}/node-tmp PYTHON=python COVTESTS="test-ci test-internet test-pummel test-benchmark" make coverage -j $(getconf _NPROCESSORS_ONLN)

Once nodejs/node#25799 lands, we can replace the list of suites with test-all-suites and all tests under the test directory will run no matter where they are.

Activity

  1. changed the title [-]Add pummel and benchmark tests to coverage job[/-] [+]Expanding tests run in coverage job[/+] on Jan 31, 2019
  2. Trott commented on Jan 31, 2019

    @Trott
    MemberAuthor

    Guess I'll leave this open until we can change it to test-all-suites.

  3. Trott commented on Jan 31, 2019

    @Trott
    MemberAuthor

    Hmmm...my change somehow added code in the benchmark directory to the measurements, which is definitely not what I wanted to do. Any idea how to exclude it or why it got included? @bcoe

  4. Trott commented on Jan 31, 2019

    @Trott
    MemberAuthor

    Oh, I see, I need to add it as an --exclude in the call to c8 in the Makefile.

  5. Trott commented on Jan 31, 2019

    @Trott
    MemberAuthor

    (In the meantime, I'll remove the benchmark tests from the coverage job.)

  6. mhdawson commented on Jan 31, 2019

    @mhdawson
    Member

    @Trott, how much run time does adding those 2 make?

    Working on #1669 and just want to understand how that will affect the run time there as well. We will also have to sync that job.

  7. Trott commented on Jan 31, 2019

    @Trott
    MemberAuthor

    @Trott, how much run time does adding those 2 make?

    Working on #1669 and just want to understand how that will affect the run time there as well. We will also have to sync that job.

    The whole job, start-to-finish, takes around 20 minutes give-or-take 5 minutes. My run took 19 minutes and the previous run (without these additions) was 21 minutes, so whatever additional time there is, it is negligible. On the other hand, that is odd because I believe two pummel tests timed out, so I would expect that to add 4 minutes right there. (Maybe there's some Jenkins magic there? Does this job run things in parallel even though they're not parallel-safe somehow?)

  8. mhdawson commented on Jan 31, 2019

    @mhdawson
    Member

    @Trott key thanks, if its not significantly longer that's good.

    I doubt there is "magic".

  9. mhdawson commented on Feb 1, 2019

    @mhdawson
    Member

    Something strange is going on. I'm seeing failures in the sanity coverage job when trying to add pummel. Looks like the different types are running in parallel which seems wrong so I'm not sure adding these until we figure that out is a good idea as it seems to be causing tests to fail that previously passed because they are running in parallel.

    The coverage job does not intentionally try to run anything in parallel that is not normally run that way.

  10. refack commented on Feb 1, 2019

    @refack
    Contributor

    Looks like the different types are running in parallel which seems wrong

    The change in nodejs/node#25799 will fix that. Parallelism will only be done by test.py not by make.
    (We should make sure all make test* run with -j anyway)

  11. mhdawson commented on Feb 1, 2019

    @mhdawson
    Member

    I don't see how 25799 is going to fix that for the coverage jobs. @refack is it a known problem that the suites are running in parallel?

  12. Trott commented on Feb 1, 2019

    @Trott
    MemberAuthor

    @mhdawson I'd guess it will fix it because the coverage job will run only one make target (test-all-suites) whereas currently, make runs multiple targets (test-pummel and test-internet and so on) and ends up running multiple test.py instances.

  13. Trott commented on Feb 1, 2019

    @Trott
    MemberAuthor

    By the way, the only thing keeping nodejs/node#25799 from landing at this point is that it needs one more approval. @refack? @mhdawson?

  14. 11 remaining items

  15. Trott commented on Feb 2, 2019

    @Trott
    MemberAuthor

    The problem would seem to be that test-all-suites has test-js-native-api as a pre-requisite. We really just need test-build I think. Testing that locally with a make clean && make test-all-suites. If it works out, I'll open a PR, run a modified coverage job against it as part of the test, and hopefully that will finally get this done.

  16. Trott commented on Feb 2, 2019

    @Trott
    MemberAuthor
  17. Trott commented on Feb 2, 2019

    @Trott
    MemberAuthor

    Changed it back to test-all-suites and running a job against nodejs/node#25892 rather than master and with the publish checkbox unchecked: https://ci.nodejs.org/view/All/job/node-test-commit-linux-coverage-daily/28/

    Will now change things back to test-ci test-internet test-pummel test-benchmark.

  18. Trott commented on Feb 2, 2019

    @Trott
    MemberAuthor

    Coverage stats with that PR look reasonable:

    06:30:40 Javascript coverage %: 95.47%
    06:30:40 C++ coverage %: 90.3%
  19. Trott commented on Feb 2, 2019

    @Trott
    MemberAuthor

    (And it took 20 minutes to run, so that seems reasonable too.)

  20. Trott commented on Feb 3, 2019

    @Trott
    MemberAuthor

    nodejs/node#25892 landed. Updating job again:

    NODE_TEST_DIR=${HOME}/node-tmp PYTHON=python COVTESTS="test-all-suites" make coverage -j $(getconf _NPROCESSORS_ONLN)
    

    Running coverage job: https://ci.nodejs.org/view/All/job/node-test-commit-linux-coverage-daily/29/

  21. Trott commented on Feb 3, 2019

    @Trott
    MemberAuthor

    Hmmm...git timing out in that run it seems...

    Trying again: https://ci.nodejs.org/view/All/job/node-test-commit-linux-coverage-daily/30/

  22. Trott commented on Feb 3, 2019

    @Trott
    MemberAuthor

    @refack reported that a Jenkins workspace needed attention but that things should be fine now. So, trying again: https://ci.nodejs.org/view/All/job/node-test-commit-linux-coverage-daily/31/

  23. Trott commented on Feb 3, 2019

    @Trott
    MemberAuthor

    That run looks good. Optimistically closing this.

  24. mhdawson commented on Feb 4, 2019

    @mhdawson
    Member

    The coverage test job where we are trying to only fail if something other than test failing seems to be having problems with the updates.

    In particular, this seems to be timing out after 5 mins: test-dnsBuild timed out. See https://ci.nodejs.org/job/node-test-commit-coverage/nodes=ubuntu1604_sharedlibs_x64/59/console

  25. mhdawson commented on Feb 4, 2019

    @mhdawson
    Member

    Not sure we don't see the same failure in the main coverage run. IN any case I guess we'll investigate that separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-changePSA of configuration changes

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions