Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
On 12/13, Lars Schneider wrote: > > > On 13 Dec 2017, at 18:38, Junio C Hamanowrote: > > > > Lars Schneider writes: > > > >> I think your solution points into the right direction. > >> Right now we have the following test matrix: > >> > >> 1. Linux - clang > >> 2. Linux - gcc > >> 3. Mac - clang > >> 4. Mac - gcc > >> 5. Linux - gcc - GET_TEXT_POISION > >> 6. Linux - gcc - 32bit > >> 7. Windows > >> > >> AFAIK your solution would run the split index test for > >> 1, 2, 3, and 4. I think that is too much. > > > > Not that it matters too much, but I meant to add it to 1. and > > 6. when I said "only one of 64-bit build plus 32-bit one". > > Ah. Sorry, I didn't get that. > > > >> 1 runs the fastest and I would like to keep it that way > >> to get a quick "general" result. I think only 2 should be > >> extended in the way you are suggesting. We could run > >> the tests with different env variables there. What else > >> do we have besides GIT_TEST_SPLIT_INDEX? > >> > >> Would that work for everyone? > > > > I am OK to make 2. use split-index (which unfortunately would mean > > we lose tests without split-index under gcc), or add 2.5 that is a > > copy of 2. plus split-index. > > > I think I experessed myself poorly. As far as I understand it, > GIT_TEST_SPLIT_INDEX is an environment variable that only needs > to be set at test time and not at compile time. Is this right? Yes, that's correct. > If yes, my idea for 2. is as follows: > - build Git with gcc > - run tests with "make --quiet test" > - run tests with "GIT_TEST_SPLIT_INDEX=YesPlease make --quiet test" > > This should be quicker than a new 2.5 target because we don't need to > spin up the machine and build Git. Plus, we could run the tests > a few more times with other test flags. I'd be happy with that. Thanks for the discussion on this, will change this in my re-roll. > - Lars
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
On 12/12, Junio C Hamano wrote: > Thomas Gummererwrites: > > > > > The breakages wen the split-index code fails tend to break things in > > much more obvious manners than a wrong message, usually git ends up > > dying if it gets broken. Both of the bugs that were fixed here would > > have been caught with the change in my patch. > > > > But yeah I can see the argument that it doesn't give us a guarantee > > that it catches all things the test suite could catch. > > I think you misunderstood me. When split index is much easier to > break than poison tests, combining them together would hurt the test > coverage of poison tests. If you value poison tests much more than > how well split index mode works, that is a worse outcome. Sorry, indeed I misunderstood you. I do agree with the above. > >> I wonder if it makes more sense to update ci/run-tests.sh so that > >> its final step is run twice with different settings, like so? > > > > I kind of wanted to avoid that, because it ends up running the test > > suite twice on travis for every test, which seems a bit overkill. But > > I don't exactly how worried we are about cycles on travis (I don't > > check it very often personally, so I don't really know). If we aren't > > worried about cycles what you have below would certainly make sense. > > I think 64-bit gcc/clang builds tend to cost us about 10-20 minutes > each, and 32-bit linux builds about 10 minutes or so. I wonder if > it makes sense to do the "run twice" for only one of 64-bit builds > (perhaps the clang one, as I suspect 32-bit linux one uses gcc) and > the 32-bit linux build, and nowhere else. Yeah I'd be happy with something like that. And I see there's some more discussion about it in another part of the thread, will follow up there. Thanks!
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
> On 13 Dec 2017, at 18:38, Junio C Hamanowrote: > > Lars Schneider writes: > >> I think your solution points into the right direction. >> Right now we have the following test matrix: >> >> 1. Linux - clang >> 2. Linux - gcc >> 3. Mac - clang >> 4. Mac - gcc >> 5. Linux - gcc - GET_TEXT_POISION >> 6. Linux - gcc - 32bit >> 7. Windows >> >> AFAIK your solution would run the split index test for >> 1, 2, 3, and 4. I think that is too much. > > Not that it matters too much, but I meant to add it to 1. and > 6. when I said "only one of 64-bit build plus 32-bit one". Ah. Sorry, I didn't get that. >> 1 runs the fastest and I would like to keep it that way >> to get a quick "general" result. I think only 2 should be >> extended in the way you are suggesting. We could run >> the tests with different env variables there. What else >> do we have besides GIT_TEST_SPLIT_INDEX? >> >> Would that work for everyone? > > I am OK to make 2. use split-index (which unfortunately would mean > we lose tests without split-index under gcc), or add 2.5 that is a > copy of 2. plus split-index. I think I experessed myself poorly. As far as I understand it, GIT_TEST_SPLIT_INDEX is an environment variable that only needs to be set at test time and not at compile time. Is this right? If yes, my idea for 2. is as follows: - build Git with gcc - run tests with "make --quiet test" - run tests with "GIT_TEST_SPLIT_INDEX=YesPlease make --quiet test" This should be quicker than a new 2.5 target because we don't need to spin up the machine and build Git. Plus, we could run the tests a few more times with other test flags. - Lars
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
Lars Schneiderwrites: > I think your solution points into the right direction. > Right now we have the following test matrix: > > 1. Linux - clang > 2. Linux - gcc > 3. Mac - clang > 4. Mac - gcc > 5. Linux - gcc - GET_TEXT_POISION > 6. Linux - gcc - 32bit > 7. Windows > > AFAIK your solution would run the split index test for > 1, 2, 3, and 4. I think that is too much. Not that it matters too much, but I meant to add it to 1. and 6. when I said "only one of 64-bit build plus 32-bit one". > 1 runs the fastest and I would like to keep it that way > to get a quick "general" result. I think only 2 should be > extended in the way you are suggesting. We could run > the tests with different env variables there. What else > do we have besides GIT_TEST_SPLIT_INDEX? > > Would that work for everyone? I am OK to make 2. use split-index (which unfortunately would mean we lose tests without split-index under gcc), or add 2.5 that is a copy of 2. plus split-index.
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
> On 12 Dec 2017, at 20:15, Junio C Hamanowrote: > > Lars Schneider writes: > >>> You're right, it's my first time using travis CI and I got confused >>> about how the .travis.yml works, thanks for catching that. Will >>> re-phrase the commit message. >> >> Szeder is spot on. If you fix up the message, then this patch looks >> perfect! Pragmatic (= very good!) idea to combine GITTEXT_POISON with >> GIT_TEST_SPLIT_INDEX :-) > > I am failing to guess the real intent of the smiley here. No real reason. I was just happy to see that Travis CI seems to be useful for the Git project. > If split-index code is so easy to break, I do not think it is a good > idea to combine it into the poison build. In fact, the poison test > is useless on a codebase where other/real breakages are expected to > exist, because it is about seeing messages meant for non-humans are > not passed to the _() mechanism by sloppy coding, and the way it > does so is to corrupt all the messages that come through the _() > mechanism. If we do not even produce a message when a correct code > _should_ produce one, poison test would catch nothing useful. > > I wonder if it makes more sense to update ci/run-tests.sh so that > its final step is run twice with different settings, like so? Agreed - I didn't think it through. Let's keep it separate then. I think your solution points into the right direction. Right now we have the following test matrix: 1. Linux - clang 2. Linux - gcc 3. Mac - clang 4. Mac - gcc 5. Linux - gcc - GET_TEXT_POISION 6. Linux - gcc - 32bit 7. Windows AFAIK your solution would run the split index test for 1, 2, 3, and 4. I think that is too much. 1 runs the fastest and I would like to keep it that way to get a quick "general" result. I think only 2 should be extended in the way you are suggesting. We could run the tests with different env variables there. What else do we have besides GIT_TEST_SPLIT_INDEX? Would that work for everyone? - Lars > ci/run-tests.sh | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/ci/run-tests.sh b/ci/run-tests.sh > index f0c743de94..15a5f5a6cc 100755 > --- a/ci/run-tests.sh > +++ b/ci/run-tests.sh > @@ -8,3 +8,4 @@ > mkdir -p $HOME/travis-cache > ln -s $HOME/travis-cache/.prove t/.prove > make --quiet test > +GIT_TEST_SPLIT_INDEX=LetsTryIt make --quiet test
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
Thomas Gummererwrites: > > The breakages wen the split-index code fails tend to break things in > much more obvious manners than a wrong message, usually git ends up > dying if it gets broken. Both of the bugs that were fixed here would > have been caught with the change in my patch. > > But yeah I can see the argument that it doesn't give us a guarantee > that it catches all things the test suite could catch. I think you misunderstood me. When split index is much easier to break than poison tests, combining them together would hurt the test coverage of poison tests. If you value poison tests much more than how well split index mode works, that is a worse outcome. >> I wonder if it makes more sense to update ci/run-tests.sh so that >> its final step is run twice with different settings, like so? > > I kind of wanted to avoid that, because it ends up running the test > suite twice on travis for every test, which seems a bit overkill. But > I don't exactly how worried we are about cycles on travis (I don't > check it very often personally, so I don't really know). If we aren't > worried about cycles what you have below would certainly make sense. I think 64-bit gcc/clang builds tend to cost us about 10-20 minutes each, and 32-bit linux builds about 10 minutes or so. I wonder if it makes sense to do the "run twice" for only one of 64-bit builds (perhaps the clang one, as I suspect 32-bit linux one uses gcc) and the 32-bit linux build, and nowhere else.
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
On 12/12, Junio C Hamano wrote: > Lars Schneiderwrites: > > >> You're right, it's my first time using travis CI and I got confused > >> about how the .travis.yml works, thanks for catching that. Will > >> re-phrase the commit message. > > > > Szeder is spot on. If you fix up the message, then this patch looks > > perfect! Pragmatic (= very good!) idea to combine GITTEXT_POISON with > > GIT_TEST_SPLIT_INDEX :-) > > I am failing to guess the real intent of the smiley here. > > If split-index code is so easy to break, I do not think it is a good > idea to combine it into the poison build. In fact, the poison test > is useless on a codebase where other/real breakages are expected to > exist, because it is about seeing messages meant for non-humans are > not passed to the _() mechanism by sloppy coding, and the way it > does so is to corrupt all the messages that come through the _() > mechanism. If we do not even produce a message when a correct code > _should_ produce one, poison test would catch nothing useful. The breakages wen the split-index code fails tend to break things in much more obvious manners than a wrong message, usually git ends up dying if it gets broken. Both of the bugs that were fixed here would have been caught with the change in my patch. But yeah I can see the argument that it doesn't give us a guarantee that it catches all things the test suite could catch. > I wonder if it makes more sense to update ci/run-tests.sh so that > its final step is run twice with different settings, like so? I kind of wanted to avoid that, because it ends up running the test suite twice on travis for every test, which seems a bit overkill. But I don't exactly how worried we are about cycles on travis (I don't check it very often personally, so I don't really know). If we aren't worried about cycles what you have below would certainly make sense. > ci/run-tests.sh | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/ci/run-tests.sh b/ci/run-tests.sh > index f0c743de94..15a5f5a6cc 100755 > --- a/ci/run-tests.sh > +++ b/ci/run-tests.sh > @@ -8,3 +8,4 @@ > mkdir -p $HOME/travis-cache > ln -s $HOME/travis-cache/.prove t/.prove > make --quiet test > +GIT_TEST_SPLIT_INDEX=LetsTryIt make --quiet test
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
Lars Schneiderwrites: >> You're right, it's my first time using travis CI and I got confused >> about how the .travis.yml works, thanks for catching that. Will >> re-phrase the commit message. > > Szeder is spot on. If you fix up the message, then this patch looks > perfect! Pragmatic (= very good!) idea to combine GITTEXT_POISON with > GIT_TEST_SPLIT_INDEX :-) I am failing to guess the real intent of the smiley here. If split-index code is so easy to break, I do not think it is a good idea to combine it into the poison build. In fact, the poison test is useless on a codebase where other/real breakages are expected to exist, because it is about seeing messages meant for non-humans are not passed to the _() mechanism by sloppy coding, and the way it does so is to corrupt all the messages that come through the _() mechanism. If we do not even produce a message when a correct code _should_ produce one, poison test would catch nothing useful. I wonder if it makes more sense to update ci/run-tests.sh so that its final step is run twice with different settings, like so? ci/run-tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/run-tests.sh b/ci/run-tests.sh index f0c743de94..15a5f5a6cc 100755 --- a/ci/run-tests.sh +++ b/ci/run-tests.sh @@ -8,3 +8,4 @@ mkdir -p $HOME/travis-cache ln -s $HOME/travis-cache/.prove t/.prove make --quiet test +GIT_TEST_SPLIT_INDEX=LetsTryIt make --quiet test
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
> On 11 Dec 2017, at 22:42, Thomas Gummererwrote: > > On 12/11, SZEDER Gábor wrote: >>> Make sure that split index doesn't get broken, by running it on travis >>> CI. >>> >>> Run the test suite with split index enabled in linux 64 bit mode, and >>> leave split index turned off in 32-bit mode. >> >> This doesn't accurately describe what the patch does. >> Travis CI runs three 64 bit Linux build jobs for us: one compiled with >> Clang, one with GCC, and one with GETTEXT_POISON enabled. This patch >> enables split index only in the latter build job, but not in the Clang >> and GCC build jobs. > > You're right, it's my first time using travis CI and I got confused > about how the .travis.yml works, thanks for catching that. Will > re-phrase the commit message. Szeder is spot on. If you fix up the message, then this patch looks perfect! Pragmatic (= very good!) idea to combine GITTEXT_POISON with GIT_TEST_SPLIT_INDEX :-) Thanks, Lars > >>> The laternative would be >>> to add an extra target in the matrix, enabling split index mode, but >>> that would only use additional cycles on travis and would not bring that >>> much benefit, as we are still running the test suite in the "vanilla" >>> version in the 32-bit mode. >>> >>> Signed-off-by: Thomas Gummerer >>> --- >>> .travis.yml | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/.travis.yml b/.travis.yml >>> index 281f101f31..c83c766dee 100644 >>> --- a/.travis.yml >>> +++ b/.travis.yml >>> @@ -39,7 +39,7 @@ env: >>> >>> matrix: >>> include: >>> -- env: GETTEXT_POISON=YesPlease >>> +- env: GETTEXT_POISON=YesPlease GIT_TEST_SPLIT_INDEX=YesPlease >>> os: linux >>> compiler: >>> addons: >>> -- >>> 2.15.1.504.g5279b80103
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
On 12/11, SZEDER Gábor wrote: > > Make sure that split index doesn't get broken, by running it on travis > > CI. > > > > Run the test suite with split index enabled in linux 64 bit mode, and > > leave split index turned off in 32-bit mode. > > This doesn't accurately describe what the patch does. > Travis CI runs three 64 bit Linux build jobs for us: one compiled with > Clang, one with GCC, and one with GETTEXT_POISON enabled. This patch > enables split index only in the latter build job, but not in the Clang > and GCC build jobs. You're right, it's my first time using travis CI and I got confused about how the .travis.yml works, thanks for catching that. Will re-phrase the commit message. > > The laternative would be > > to add an extra target in the matrix, enabling split index mode, but > > that would only use additional cycles on travis and would not bring that > > much benefit, as we are still running the test suite in the "vanilla" > > version in the 32-bit mode. > > > > Signed-off-by: Thomas Gummerer> > --- > > .travis.yml | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/.travis.yml b/.travis.yml > > index 281f101f31..c83c766dee 100644 > > --- a/.travis.yml > > +++ b/.travis.yml > > @@ -39,7 +39,7 @@ env: > > > > matrix: > >include: > > -- env: GETTEXT_POISON=YesPlease > > +- env: GETTEXT_POISON=YesPlease GIT_TEST_SPLIT_INDEX=YesPlease > >os: linux > >compiler: > >addons: > > -- > > 2.15.1.504.g5279b80103
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
> Make sure that split index doesn't get broken, by running it on travis > CI. > > Run the test suite with split index enabled in linux 64 bit mode, and > leave split index turned off in 32-bit mode. This doesn't accurately describe what the patch does. Travis CI runs three 64 bit Linux build jobs for us: one compiled with Clang, one with GCC, and one with GETTEXT_POISON enabled. This patch enables split index only in the latter build job, but not in the Clang and GCC build jobs. > The laternative would be > to add an extra target in the matrix, enabling split index mode, but > that would only use additional cycles on travis and would not bring that > much benefit, as we are still running the test suite in the "vanilla" > version in the 32-bit mode. > > Signed-off-by: Thomas Gummerer> --- > .travis.yml | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/.travis.yml b/.travis.yml > index 281f101f31..c83c766dee 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -39,7 +39,7 @@ env: > > matrix: >include: > -- env: GETTEXT_POISON=YesPlease > +- env: GETTEXT_POISON=YesPlease GIT_TEST_SPLIT_INDEX=YesPlease >os: linux >compiler: >addons: > -- > 2.15.1.504.g5279b80103
Re: [PATCH 3/3] travis: run tests with GIT_TEST_SPLIT_INDEX
On Sun, Dec 10, 2017 at 4:22 PM, Thomas Gummererwrote: > Make sure that split index doesn't get broken, by running it on travis > CI. > > Run the test suite with split index enabled in linux 64 bit mode, and > leave split index turned off in 32-bit mode. The laternative would be s/laternative/alternative/ > to add an extra target in the matrix, enabling split index mode, but > that would only use additional cycles on travis and would not bring that > much benefit, as we are still running the test suite in the "vanilla" > version in the 32-bit mode. > > Signed-off-by: Thomas Gummerer