{"thread":{"id":"52074","subject":"[PATCH 0/2] Fix the speed of the CI (Visual Studio) tests","startedAt":"2019-10-20T20:39:35Z","lastAt":"2019-10-24T23:24:20Z","messageCount":9,"participants":["Johannes Schindelin via GitGitGadget","Eric Sunshine","Junio C Hamano","Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"384478","messageId":"pull.410.git.1571603970.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":null,"subject":"[PATCH 0/2] Fix the speed of the CI (Visual Studio) tests","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-20T20:39:28Z","receivedAt":"2019-10-20T20:39:35Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"I made a mistake when converting the make/prove-based test job to a \ntest-tool run-command testsuite one: I lost the parallelization, resulting\nin way slower CI runs.\n\nAlso, I forgot to build with DEVELOPER=1, i.e. with stricter compile flags.\n\nThis pair of patches fixes both issues.\n\nJohannes Schindelin (2):\n  ci(visual-studio): use strict compile flags, and optimization\n  ci(visual-studio): actually run the tests in parallel\n\n azure-pipelines.yml | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\n\nbase-commit: d966095db01190a2196e31195ea6fa0c722aa732\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-410%2Fdscho%2Faccelerate-ci-vs-test-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-410/dscho/accelerate-ci-vs-test-v1\nPull-Request: https://github.com/gitgitgadget/git/pull/410\n-- \ngitgitgadget\n"},{"id":"384479","messageId":"e3343d174008a3fe21c159c197913ce749e21589.1571603970.git.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":"pull.410.git.1571603970.gitgitgadget@gmail.com","subject":"[PATCH 2/2] ci(visual-studio): actually run the tests in parallel","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-20T20:39:30Z","receivedAt":"2019-10-20T20:39:36Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"From: Johannes Schindelin <johannes.schindelin@gmx.de>\n\nOriginally, the CI/PR builds that build and test using Visual Studio\nwere implemented imitating `linux-clang`, i.e. still using the\n`Makefile`-based build infrastructure.\n\nLater (but still before the patches made their way into git.git's\n`master`), however, this was changed to generate Visual Studio project\nfiles and build the binaries using `MSBuild`, as this reflects more\naccurately how Visual Studio users would want to build Git (internally,\nVisual Studio uses `MSBuild`, or at least something very similar).\n\nDuring that transition, we needed to implement a new way to run the test\nsuite in parallel, as Visual Studio users typically will only have a Git\nBash available (which does not ship with `make` nore with support for\n`prove`): we simply implemented a new test helper to run the test suite.\n\nThis helper even knows how to run the tests in parallel, but due to a\nmistake on this developer's part, it was never turned on in the CI/PR\nbuilds. This results in 2x-3x longer run times of the test phase.\n\nLet's use the `--jobs=10` option to fix this.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n azure-pipelines.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/azure-pipelines.yml b/azure-pipelines.yml\nindex 457c6fee31..af2a5ea484 100644\n--- a/azure-pipelines.yml\n+++ b/azure-pipelines.yml\n@@ -255,7 +255,7 @@ jobs:\n \n         cd t &&\n         PATH=\\\"`$PWD/helper:`$PATH\\\" &&\n-        test-tool.exe run-command testsuite -V -x --write-junit-xml \\\n+        test-tool.exe run-command testsuite --jobs=10 -V -x --write-junit-xml \\\n                 `$(test-tool.exe path-utils slice-tests \\\n                         `$SYSTEM_JOBPOSITIONINPHASE `$SYSTEM_TOTALJOBSINPHASE t[0-9]*.sh)\n       \"@\n-- \ngitgitgadget\n"},{"id":"384480","messageId":"6fba3b1c76d6e28c1ef4fd6c933bd73531e6cb7e.1571603970.git.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":"pull.410.git.1571603970.gitgitgadget@gmail.com","subject":"[PATCH 1/2] ci(visual-studio): use strict compile flags, and optimization","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-20T20:39:29Z","receivedAt":"2019-10-20T20:39:36Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"From: Johannes Schindelin <johannes.schindelin@gmx.de>\n\nTo make full use of the work that went into the Visual Studio build &\ntest jobs in our CI/PR builds, let's turn on strict compiler flags. This\nwill give us the benefit of Visual C's compiler warnings (which, at\ntimes, seem to catch things that GCC does not catch, and vice versa).\n\nWhile at it, also turn on optimization; It does not make sense to\nproduce binaries with debug information, and we can use any ounce of\nspeed that we get (because the test suite is particularly slow on\nWindows, thanks to the need to run inside a Unix shell, which\nrequires us to use the POSIX emulation layer provided by MSYS2).\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n azure-pipelines.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/azure-pipelines.yml b/azure-pipelines.yml\nindex 9f099b9529..457c6fee31 100644\n--- a/azure-pipelines.yml\n+++ b/azure-pipelines.yml\n@@ -157,7 +157,7 @@ jobs:\n     displayName: 'Download git-sdk-64-minimal'\n   - powershell: |\n       & git-sdk-64-minimal\\usr\\bin\\bash.exe -lc @\"\n-        make vcxproj\n+        make NDEBUG=1 DEVELOPER=1 vcxproj\n       \"@\n       if (!$?) { exit(1) }\n     displayName: Generate Visual Studio Solution\n-- \ngitgitgadget\n\n"},{"id":"384481","messageId":"CAPig+cRZ07OGB4kKO=fozh8fRnCLa0ZrxuUFD3By9c62DZe9BA@mail.gmail.com","threadId":"52074","inReplyTo":"e3343d174008a3fe21c159c197913ce749e21589.1571603970.git.gitgitgadget@gmail.com","subject":"Re: [PATCH 2/2] ci(visual-studio): actually run the tests in parallel","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2019-10-20T21:23:23Z","receivedAt":"2019-10-20T21:23:38Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Sun, Oct 20, 2019 at 4:39 PM Johannes Schindelin via GitGitGadget\n<gitgitgadget@gmail.com> wrote:\n> [...]\n> During that transition, we needed to implement a new way to run the test\n> suite in parallel, as Visual Studio users typically will only have a Git\n> Bash available (which does not ship with `make` nore with support for\n\ns/nore/nor/\n\n> `prove`): we simply implemented a new test helper to run the test suite.\n>\n> This helper even knows how to run the tests in parallel, but due to a\n> mistake on this developer's part, it was never turned on in the CI/PR\n> builds. This results in 2x-3x longer run times of the test phase.\n>\n> Let's use the `--jobs=10` option to fix this.\n>\n> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n"},{"id":"384559","messageId":"6fba3b1c76d6e28c1ef4fd6c933bd73531e6cb7e.1571687999.git.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":"pull.410.v2.git.1571687999.gitgitgadget@gmail.com","subject":"[PATCH v2 1/2] ci(visual-studio): use strict compile flags, and optimization","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-21T19:59:57Z","receivedAt":"2019-10-21T20:00:03Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"From: Johannes Schindelin <johannes.schindelin@gmx.de>\n\nTo make full use of the work that went into the Visual Studio build &\ntest jobs in our CI/PR builds, let's turn on strict compiler flags. This\nwill give us the benefit of Visual C's compiler warnings (which, at\ntimes, seem to catch things that GCC does not catch, and vice versa).\n\nWhile at it, also turn on optimization; It does not make sense to\nproduce binaries with debug information, and we can use any ounce of\nspeed that we get (because the test suite is particularly slow on\nWindows, thanks to the need to run inside a Unix shell, which\nrequires us to use the POSIX emulation layer provided by MSYS2).\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n azure-pipelines.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/azure-pipelines.yml b/azure-pipelines.yml\nindex 9f099b9529..457c6fee31 100644\n--- a/azure-pipelines.yml\n+++ b/azure-pipelines.yml\n@@ -157,7 +157,7 @@ jobs:\n     displayName: 'Download git-sdk-64-minimal'\n   - powershell: |\n       & git-sdk-64-minimal\\usr\\bin\\bash.exe -lc @\"\n-        make vcxproj\n+        make NDEBUG=1 DEVELOPER=1 vcxproj\n       \"@\n       if (!$?) { exit(1) }\n     displayName: Generate Visual Studio Solution\n-- \ngitgitgadget\n\n"},{"id":"384561","messageId":"07749ab720af05b3f666e325e9bc3c4c5d8196e5.1571687999.git.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":"pull.410.v2.git.1571687999.gitgitgadget@gmail.com","subject":"[PATCH v2 2/2] ci(visual-studio): actually run the tests in parallel","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-21T19:59:58Z","receivedAt":"2019-10-21T20:00:04Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"From: Johannes Schindelin <johannes.schindelin@gmx.de>\n\nOriginally, the CI/PR builds that build and test using Visual Studio\nwere implemented imitating `linux-clang`, i.e. still using the\n`Makefile`-based build infrastructure.\n\nLater (but still before the patches made their way into git.git's\n`master`), however, this was changed to generate Visual Studio project\nfiles and build the binaries using `MSBuild`, as this reflects more\naccurately how Visual Studio users would want to build Git (internally,\nVisual Studio uses `MSBuild`, or at least something very similar).\n\nDuring that transition, we needed to implement a new way to run the test\nsuite in parallel, as Visual Studio users typically will only have a Git\nBash available (which does not ship with `make` nor with support for\n`prove`): we simply implemented a new test helper to run the test suite.\n\nThis helper even knows how to run the tests in parallel, but due to a\nmistake on this developer's part, it was never turned on in the CI/PR\nbuilds. This results in 2x-3x longer run times of the test phase.\n\nLet's use the `--jobs=10` option to fix this.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n azure-pipelines.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/azure-pipelines.yml b/azure-pipelines.yml\nindex 457c6fee31..af2a5ea484 100644\n--- a/azure-pipelines.yml\n+++ b/azure-pipelines.yml\n@@ -255,7 +255,7 @@ jobs:\n \n         cd t &&\n         PATH=\\\"`$PWD/helper:`$PATH\\\" &&\n-        test-tool.exe run-command testsuite -V -x --write-junit-xml \\\n+        test-tool.exe run-command testsuite --jobs=10 -V -x --write-junit-xml \\\n                 `$(test-tool.exe path-utils slice-tests \\\n                         `$SYSTEM_JOBPOSITIONINPHASE `$SYSTEM_TOTALJOBSINPHASE t[0-9]*.sh)\n       \"@\n-- \ngitgitgadget\n"},{"id":"384560","messageId":"pull.410.v2.git.1571687999.gitgitgadget@gmail.com","threadId":"52074","inReplyTo":"pull.410.git.1571603970.gitgitgadget@gmail.com","subject":"[PATCH v2 0/2] Fix the speed of the CI (Visual Studio) tests","fromName":"Johannes Schindelin via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2019-10-21T19:59:56Z","receivedAt":"2019-10-21T20:00:05Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"I made a mistake when converting the make/prove-based test job to a \ntest-tool run-command testsuite one: I lost the parallelization, resulting\nin way slower CI runs.\n\nAlso, I forgot to build with DEVELOPER=1, i.e. with stricter compile flags.\n\nThis pair of patches fixes both issues.\n\nChanges since v1:\n\n * Fixed typo \"nore\" -> \"nor\" in the commit message.\n\nJohannes Schindelin (2):\n  ci(visual-studio): use strict compile flags, and optimization\n  ci(visual-studio): actually run the tests in parallel\n\n azure-pipelines.yml | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\n\nbase-commit: d966095db01190a2196e31195ea6fa0c722aa732\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-410%2Fdscho%2Faccelerate-ci-vs-test-v2\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-410/dscho/accelerate-ci-vs-test-v2\nPull-Request: https://github.com/gitgitgadget/git/pull/410\n\nRange-diff vs v1:\n\n 1:  6fba3b1c76 = 1:  6fba3b1c76 ci(visual-studio): use strict compile flags, and optimization\n 2:  e3343d1740 ! 2:  07749ab720 ci(visual-studio): actually run the tests in parallel\n     @@ -14,7 +14,7 @@\n      \n          During that transition, we needed to implement a new way to run the test\n          suite in parallel, as Visual Studio users typically will only have a Git\n     -    Bash available (which does not ship with `make` nore with support for\n     +    Bash available (which does not ship with `make` nor with support for\n          `prove`): we simply implemented a new test helper to run the test suite.\n      \n          This helper even knows how to run the tests in parallel, but due to a\n\n-- \ngitgitgadget\n"},{"id":"384660","messageId":"xmqqlftcjjvi.fsf@gitster-ct.c.googlers.com","threadId":"52074","inReplyTo":"pull.410.v2.git.1571687999.gitgitgadget@gmail.com","subject":"Re: [PATCH v2 0/2] Fix the speed of the CI (Visual Studio) tests","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-10-23T02:06:25Z","receivedAt":"2019-10-23T02:06:30Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Johannes Schindelin via GitGitGadget\" <gitgitgadget@gmail.com>\nwrites:\n\n> Changes since v1:\n>\n>  * Fixed typo \"nore\" -> \"nor\" in the commit message.\n>\n> Johannes Schindelin (2):\n>   ci(visual-studio): use strict compile flags, and optimization\n>   ci(visual-studio): actually run the tests in parallel\n>\n>  azure-pipelines.yml | 4 ++--\n>  1 file changed, 2 insertions(+), 2 deletions(-)\n\nThanks.\n\nI will take the change to 'master' directly, as cooking in 'next'\nwon't give it any extra exposure when the topic touches only this\nfile and the patch comes from those who do exercise azure CI build\nbefore sending it out to the list ;-)\n"},{"id":"384809","messageId":"nycvar.QRO.7.76.6.1910250122000.46@tvgsbejvaqbjf.bet","threadId":"52074","inReplyTo":"xmqqlftcjjvi.fsf@gitster-ct.c.googlers.com","subject":"Re: [PATCH v2 0/2] Fix the speed of the CI (Visual Studio) tests","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2019-10-24T23:23:57Z","receivedAt":"2019-10-24T23:24:20Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Junio,\n\nOn Wed, 23 Oct 2019, Junio C Hamano wrote:\n\n> \"Johannes Schindelin via GitGitGadget\" <gitgitgadget@gmail.com>\n> writes:\n>\n> > Changes since v1:\n> >\n> >  * Fixed typo \"nore\" -> \"nor\" in the commit message.\n> >\n> > Johannes Schindelin (2):\n> >   ci(visual-studio): use strict compile flags, and optimization\n> >   ci(visual-studio): actually run the tests in parallel\n> >\n> >  azure-pipelines.yml | 4 ++--\n> >  1 file changed, 2 insertions(+), 2 deletions(-)\n>\n> Thanks.\n>\n> I will take the change to 'master' directly, as cooking in 'next'\n> won't give it any extra exposure when the topic touches only this\n> file and the patch comes from those who do exercise azure CI build\n> before sending it out to the list ;-)\n\nThank you very much! It is indeed a lot faster now.\n\nCiao,\nDscho\n"}]}