{"thread":{"id":"45980","subject":"t5545: reduced test coverage","startedAt":"2017-05-16T15:56:03Z","lastAt":"2017-05-18T02:52:27Z","messageCount":7,"participants":["Ramsay Jones","Junio C Hamano","Stefan Beller"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"319922","messageId":"ca942ab1-db57-5794-4587-1a756686c833@ramsayjones.plus.com","threadId":"45980","inReplyTo":null,"subject":"t5545: reduced test coverage","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-05-16T15:55:43Z","receivedAt":"2017-05-16T15:56:03Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Hi Junio,\n\nI noticed, when comparing the test-suite output from v2.12.0\nversus v2.13.0-rc0 on cygwin, that t5545-push-options.sh was\nno longer being run. (Well, now being skipped because it can't\nfind a web-server). Prior to commit 438fc68462 (\"push options:\npass push options to the transport helper\", 08-02-2017), this\ntest file ran three tests on 'local remotes'.\n\n[I used to test with apache on Linux, but during an OS upgrade\n(some time ago) I decided not to install apache just for the\ngit test-suite. (I used to run webgit and cgit, but no more!)]\n\nI suppose it is not a major reduction in test coverage, but I\ndon't recall any discussion about it and I wondered if it was\nby accident or design.\n\nATB,\nRamsay Jones\n\n"},{"id":"319989","messageId":"xmqqbmqsyzn7.fsf@gitster.mtv.corp.google.com","threadId":"45980","inReplyTo":"ca942ab1-db57-5794-4587-1a756686c833@ramsayjones.plus.com","subject":"Re: t5545: reduced test coverage","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-05-17T02:40:12Z","receivedAt":"2017-05-17T02:40:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n> Hi Junio,\n>\n> I noticed, when comparing the test-suite output from v2.12.0\n> versus v2.13.0-rc0 on cygwin, that t5545-push-options.sh was\n> no longer being run. (Well, now being skipped because it can't\n> find a web-server). Prior to commit 438fc68462 (\"push options:\n> pass push options to the transport helper\", 08-02-2017), this\n> test file ran three tests on 'local remotes'.\n>\n> [I used to test with apache on Linux, but during an OS upgrade\n> (some time ago) I decided not to install apache just for the\n> git test-suite. (I used to run webgit and cgit, but no more!)]\n>\n> I suppose it is not a major reduction in test coverage, but I\n> don't recall any discussion about it and I wondered if it was\n> by accident or design.\n>\n> ATB,\n> Ramsay Jones\n\nI think it was combination of carelessness and not caring about an\nincomplete platform environment well enough.  \n\nIt appears to me that only a few tests in the entire script wants to\nwork with HTTP server, so perhaps moving them to the end, together\nwith the inclusion of lib-httpd and start_httpd that 438fc684 (\"push\noptions: pass push options to the transport helper\", 2017-02-08)\nintroduced, may be sufficient?\n\nThanks.\n"},{"id":"320013","messageId":"20170517031103.4200-1-sbeller@google.com","threadId":"45980","inReplyTo":"xmqqbmqsyzn7.fsf@gitster.mtv.corp.google.com","subject":"[PATCH] t5545: enhance test coverage when no http server is installed","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-05-17T03:11:03Z","receivedAt":"2017-05-17T03:11:13Z","isPatch":true,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"In commit 438fc68462 (\"push options: pass push options to the transport\nhelper\", 08-02-2017), the test coverage was reduced to run no tests at all\nif you lack a http server.  Move the http initialization to the end,\nsuch that only http tests are skipped when a http server is missing.\n\nThe test in between that tests submodule propagation is safe to run before\nthe http tests as it makes its own test directories `parent` and\n`parent_upstream`.\n\nNoticed-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\nSigned-off-by: Stefan Beller <sbeller@google.com>\n---\n t/t5545-push-options.sh | 85 +++++++++++++++++++++++++------------------------\n 1 file changed, 43 insertions(+), 42 deletions(-)\n\ndiff --git a/t/t5545-push-options.sh b/t/t5545-push-options.sh\nindex f9232f5d0f..90a4b0d2fe 100755\n--- a/t/t5545-push-options.sh\n+++ b/t/t5545-push-options.sh\n@@ -3,8 +3,6 @@\n test_description='pushing to a repository using push options'\n \n . ./test-lib.sh\n-. \"$TEST_DIRECTORY\"/lib-httpd.sh\n-start_httpd\n \n mk_repo_pair () {\n \trm -rf workbench upstream &&\n@@ -102,46 +100,6 @@ test_expect_success 'two push options work' '\n \ttest_cmp expect upstream/.git/hooks/post-receive.push_options\n '\n \n-test_expect_success 'push option denied properly by http server' '\n-\ttest_when_finished \"rm -rf test_http_clone\" &&\n-\ttest_when_finished \"rm -rf \\\"$HTTPD_DOCUMENT_ROOT_PATH\\\"/upstream.git\" &&\n-\tmk_repo_pair &&\n-\tgit -C upstream config receive.advertisePushOptions false &&\n-\tgit -C upstream config http.receivepack true &&\n-\tcp -R upstream/.git \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git &&\n-\tgit clone \"$HTTPD_URL\"/smart/upstream test_http_clone &&\n-\ttest_commit -C test_http_clone one &&\n-\ttest_must_fail git -C test_http_clone push --push-option=asdf origin master 2>actual &&\n-\ttest_i18ngrep \"the receiving end does not support push options\" actual &&\n-\tgit -C test_http_clone push origin master\n-'\n-\n-test_expect_success 'push options work properly across http' '\n-\ttest_when_finished \"rm -rf test_http_clone\" &&\n-\ttest_when_finished \"rm -rf \\\"$HTTPD_DOCUMENT_ROOT_PATH\\\"/upstream.git\" &&\n-\tmk_repo_pair &&\n-\tgit -C upstream config receive.advertisePushOptions true &&\n-\tgit -C upstream config http.receivepack true &&\n-\tcp -R upstream/.git \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git &&\n-\tgit clone \"$HTTPD_URL\"/smart/upstream test_http_clone &&\n-\n-\ttest_commit -C test_http_clone one &&\n-\tgit -C test_http_clone push origin master &&\n-\tgit -C \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git rev-parse --verify master >expect &&\n-\tgit -C test_http_clone rev-parse --verify master >actual &&\n-\ttest_cmp expect actual &&\n-\n-\ttest_commit -C test_http_clone two &&\n-\tgit -C test_http_clone push --push-option=asdf --push-option=\"more structured text\" origin master &&\n-\tprintf \"asdf\\nmore structured text\\n\" >expect &&\n-\ttest_cmp expect \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git/hooks/pre-receive.push_options &&\n-\ttest_cmp expect \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git/hooks/post-receive.push_options &&\n-\n-\tgit -C \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git rev-parse --verify master >expect &&\n-\tgit -C test_http_clone rev-parse --verify master >actual &&\n-\ttest_cmp expect actual\n-'\n-\n test_expect_success 'push options and submodules' '\n \ttest_when_finished \"rm -rf parent\" &&\n \ttest_when_finished \"rm -rf parent_upstream\" &&\n@@ -182,6 +140,49 @@ test_expect_success 'push options and submodules' '\n \ttest_cmp expect parent_upstream/.git/hooks/post-receive.push_options\n '\n \n+. \"$TEST_DIRECTORY\"/lib-httpd.sh\n+start_httpd\n+\n+test_expect_success 'push option denied properly by http server' '\n+\ttest_when_finished \"rm -rf test_http_clone\" &&\n+\ttest_when_finished \"rm -rf \\\"$HTTPD_DOCUMENT_ROOT_PATH\\\"/upstream.git\" &&\n+\tmk_repo_pair &&\n+\tgit -C upstream config receive.advertisePushOptions false &&\n+\tgit -C upstream config http.receivepack true &&\n+\tcp -R upstream/.git \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git &&\n+\tgit clone \"$HTTPD_URL\"/smart/upstream test_http_clone &&\n+\ttest_commit -C test_http_clone one &&\n+\ttest_must_fail git -C test_http_clone push --push-option=asdf origin master 2>actual &&\n+\ttest_i18ngrep \"the receiving end does not support push options\" actual &&\n+\tgit -C test_http_clone push origin master\n+'\n+\n+test_expect_success 'push options work properly across http' '\n+\ttest_when_finished \"rm -rf test_http_clone\" &&\n+\ttest_when_finished \"rm -rf \\\"$HTTPD_DOCUMENT_ROOT_PATH\\\"/upstream.git\" &&\n+\tmk_repo_pair &&\n+\tgit -C upstream config receive.advertisePushOptions true &&\n+\tgit -C upstream config http.receivepack true &&\n+\tcp -R upstream/.git \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git &&\n+\tgit clone \"$HTTPD_URL\"/smart/upstream test_http_clone &&\n+\n+\ttest_commit -C test_http_clone one &&\n+\tgit -C test_http_clone push origin master &&\n+\tgit -C \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git rev-parse --verify master >expect &&\n+\tgit -C test_http_clone rev-parse --verify master >actual &&\n+\ttest_cmp expect actual &&\n+\n+\ttest_commit -C test_http_clone two &&\n+\tgit -C test_http_clone push --push-option=asdf --push-option=\"more structured text\" origin master &&\n+\tprintf \"asdf\\nmore structured text\\n\" >expect &&\n+\ttest_cmp expect \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git/hooks/pre-receive.push_options &&\n+\ttest_cmp expect \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git/hooks/post-receive.push_options &&\n+\n+\tgit -C \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git rev-parse --verify master >expect &&\n+\tgit -C test_http_clone rev-parse --verify master >actual &&\n+\ttest_cmp expect actual\n+'\n+\n stop_httpd\n \n test_done\n-- \n2.13.0.18.g7d86cc8ba0\n\n"},{"id":"320017","messageId":"xmqqmvacxhk0.fsf@gitster.mtv.corp.google.com","threadId":"45980","inReplyTo":"xmqqbmqsyzn7.fsf@gitster.mtv.corp.google.com","subject":"Re: t5545: reduced test coverage","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-05-17T03:56:15Z","receivedAt":"2017-05-17T03:56:22Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> It appears to me that only a few tests in the entire script wants to\n> work with HTTP server, so perhaps moving them to the end, together\n> with the inclusion of lib-httpd and start_httpd that 438fc684 (\"push\n> options: pass push options to the transport helper\", 2017-02-08)\n> introduced, may be sufficient?\n\nProbably not, as lib-httpd, when it gives up, does the\n\"skip_all=message; test_done\" thing, which makes test_done\nto trigger this:\n\n\t# Maybe print SKIP message\n\tif test -n \"$skip_all\" && test $test_count -gt 0\n\tthen\n\t\terror \"Can't use skip_all after running some tests\"\n\tfi\n\nSo a bit more work is needed, than just moving things around, I am\nafraid...\n"},{"id":"320018","messageId":"xmqqinl0xga6.fsf@gitster.mtv.corp.google.com","threadId":"45980","inReplyTo":"xmqqmvacxhk0.fsf@gitster.mtv.corp.google.com","subject":"Re: t5545: reduced test coverage","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-05-17T04:23:45Z","receivedAt":"2017-05-17T04:23:53Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> It appears to me that only a few tests in the entire script wants to\n>> work with HTTP server, so perhaps moving them to the end, together\n>> with the inclusion of lib-httpd and start_httpd that 438fc684 (\"push\n>> options: pass push options to the transport helper\", 2017-02-08)\n>> introduced, may be sufficient?\n>\n> Probably not, as lib-httpd, when it gives up, does the\n> \"skip_all=message; test_done\" thing, which makes test_done\n> to trigger this:\n>\n> \t# Maybe print SKIP message\n> \tif test -n \"$skip_all\" && test $test_count -gt 0\n> \tthen\n> \t\terror \"Can't use skip_all after running some tests\"\n> \tfi\n>\n> So a bit more work is needed, than just moving things around, I am\n> afraid...\n\nAnd now I am visiting bf4b7219 (\"test-lib.sh: Add check for invalid\nuse of 'skip_all' facility\", 2012-09-01), which is yours ;-)\n\nI am wondering what the fallouts would be if we did the following to\ntest-lib.  We used to say \"1..0 # SKIP <why>\" when we skip\neverything, which is still kept, so that prove can notice why things\nare skipped.\n\nWhen we abort early but after executing any test, we used to error\nout, but instead we pretend that the test finished right there, as\nit seems that we are not allowed to say \"1..4 # SKIP <why>\" after\nrunning 4 tests.\n\n t/test-lib.sh | 21 +++++++++++++--------\n 1 file changed, 13 insertions(+), 8 deletions(-)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 13b5696822..46f29cf112 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -745,20 +745,25 @@ test_done () {\n \tfi\n \tcase \"$test_failure\" in\n \t0)\n-\t\t# Maybe print SKIP message\n-\t\tif test -n \"$skip_all\" && test $test_count -gt 0\n-\t\tthen\n-\t\t\terror \"Can't use skip_all after running some tests\"\n-\t\tfi\n-\t\ttest -z \"$skip_all\" || skip_all=\" # SKIP $skip_all\"\n-\n \t\tif test $test_external_has_tap -eq 0\n \t\tthen\n \t\t\tif test $test_remaining -gt 0\n \t\t\tthen\n \t\t\t\tsay_color pass \"# passed all $msg\"\n \t\t\tfi\n-\t\t\tsay \"1..$test_count$skip_all\"\n+\n+\t\t\t# Maybe print SKIP message\n+\t\t\ttest -z \"$skip_all\" || skip_all=\"# SKIP $skip_all\"\n+\t\t\tcase \"$test_count\" in\n+\t\t\t0)\t\t\t    \n+\t\t\t\tsay \"1..$test_count${skip_all:+ $skip_all}\"\n+\t\t\t\t;;\n+\t\t\t*)\n+\t\t\t\ttest -z \"$skip_all\" ||\n+\t\t\t\tsay_color warn \"$skip_all\"\n+\t\t\t\tsay \"1..$test_count\"\n+\t\t\t\t;;\n+\t\t\tesac\n \t\tfi\n \n \t\ttest -d \"$remove_trash\" &&\n\n"},{"id":"320103","messageId":"17124bdc-c6cb-5f1a-5021-7c92ad7e669c@ramsayjones.plus.com","threadId":"45980","inReplyTo":"xmqqinl0xga6.fsf@gitster.mtv.corp.google.com","subject":"Re: t5545: reduced test coverage","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-05-17T20:48:55Z","receivedAt":"2017-05-17T20:49:09Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\n\nOn 17/05/17 05:23, Junio C Hamano wrote:\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n>> Junio C Hamano <gitster@pobox.com> writes:\n>>\n>>> It appears to me that only a few tests in the entire script wants to\n>>> work with HTTP server, so perhaps moving them to the end, together\n>>> with the inclusion of lib-httpd and start_httpd that 438fc684 (\"push\n>>> options: pass push options to the transport helper\", 2017-02-08)\n>>> introduced, may be sufficient?\n>>\n>> Probably not, as lib-httpd, when it gives up, does the\n>> \"skip_all=message; test_done\" thing, which makes test_done\n>> to trigger this:\n>>\n>> \t# Maybe print SKIP message\n>> \tif test -n \"$skip_all\" && test $test_count -gt 0\n>> \tthen\n>> \t\terror \"Can't use skip_all after running some tests\"\n>> \tfi\n>>\n>> So a bit more work is needed, than just moving things around, I am\n>> afraid...\n> \n> And now I am visiting bf4b7219 (\"test-lib.sh: Add check for invalid\n> use of 'skip_all' facility\", 2012-09-01), which is yours ;-)\n\nIndeed. :-D\n\n> I am wondering what the fallouts would be if we did the following to\n> test-lib.  We used to say \"1..0 # SKIP <why>\" when we skip\n> everything, which is still kept, so that prove can notice why things\n> are skipped.\n> \n> When we abort early but after executing any test, we used to error\n> out, but instead we pretend that the test finished right there, as\n> it seems that we are not allowed to say \"1..4 # SKIP <why>\" after\n> running 4 tests.\n\nYes, I had this exact 'Huh?' moment back in 2012. I remember spending\nquite a long time searching 'TAP specification' documents, in order to\nget an answer to this. It was so long ago (and I can't find the links\nto those documents now), but I have a vague recollection that prove's\nbehaviour is correct in allowing '1..0 <skip message>', while throwing\na fit at '1..n <any message>' (for n > 0).\n\nI would probably have simply split the test file into two, but ...\n\n>  t/test-lib.sh | 21 +++++++++++++--------\n>  1 file changed, 13 insertions(+), 8 deletions(-)\n> \n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index 13b5696822..46f29cf112 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -745,20 +745,25 @@ test_done () {\n>  \tfi\n>  \tcase \"$test_failure\" in\n>  \t0)\n> -\t\t# Maybe print SKIP message\n> -\t\tif test -n \"$skip_all\" && test $test_count -gt 0\n> -\t\tthen\n> -\t\t\terror \"Can't use skip_all after running some tests\"\n> -\t\tfi\n> -\t\ttest -z \"$skip_all\" || skip_all=\" # SKIP $skip_all\"\n> -\n>  \t\tif test $test_external_has_tap -eq 0\n>  \t\tthen\n>  \t\t\tif test $test_remaining -gt 0\n>  \t\t\tthen\n>  \t\t\t\tsay_color pass \"# passed all $msg\"\n>  \t\t\tfi\n> -\t\t\tsay \"1..$test_count$skip_all\"\n> +\n> +\t\t\t# Maybe print SKIP message\n> +\t\t\ttest -z \"$skip_all\" || skip_all=\"# SKIP $skip_all\"\n> +\t\t\tcase \"$test_count\" in\n> +\t\t\t0)\t\t\t    \n> +\t\t\t\tsay \"1..$test_count${skip_all:+ $skip_all}\"\n> +\t\t\t\t;;\n> +\t\t\t*)\n> +\t\t\t\ttest -z \"$skip_all\" ||\n> +\t\t\t\tsay_color warn \"$skip_all\"\n> +\t\t\t\tsay \"1..$test_count\"\n> +\t\t\t\t;;\n> +\t\t\tesac\n>  \t\tfi\n>  \n>  \t\ttest -d \"$remove_trash\" &&\n\n... this looks good to me. (tested on Linux and cygwin).\n\nThanks!\n\nATB,\nRamsay Jones\n\n"},{"id":"320128","messageId":"xmqqo9uqvpuj.fsf@gitster.mtv.corp.google.com","threadId":"45980","inReplyTo":"17124bdc-c6cb-5f1a-5021-7c92ad7e669c@ramsayjones.plus.com","subject":"Re: t5545: reduced test coverage","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-05-18T02:52:20Z","receivedAt":"2017-05-18T02:52:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n> I would probably have simply split the test file into two, but ...\n>\n\nHmph, that's a thought.\n\n\n> ... this looks good to me. (tested on Linux and cygwin).\n\nThanks.\n\n-- >8 --\nSubject: [PATCH] test: allow skipping the remainder\n\nBecause TAP output does not like to see the remainder of the test\ngetting skipped after running one or more tests, bf4b7219\n(\"test-lib.sh: Add check for invalid use of 'skip_all' facility\",\n2012-09-01) made sure that test_done errors out when this happens.\n\nInstead, loosen the check so that we only pretend that the rest of\nthe test script did not exist in such a case.  We'd lose a bit of\ninformation (i.e. TAP does not notice that we are skipping some\ntests), but not very much (i.e. TAP wasn't told how many tests are\nskipped anyway).\n\nThis will allow inclusion of lib-httpd.sh in the middle of a test,\nwhich will skip the remainder of the test scripts when tests that\ninvolve web server are declined with GIT_TEST_HTTPD=false, for\nexample.\n\nAcked-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n t/test-lib.sh | 21 +++++++++++++--------\n 1 file changed, 13 insertions(+), 8 deletions(-)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 13b5696822..30eb743719 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -745,20 +745,25 @@ test_done () {\n \tfi\n \tcase \"$test_failure\" in\n \t0)\n-\t\t# Maybe print SKIP message\n-\t\tif test -n \"$skip_all\" && test $test_count -gt 0\n-\t\tthen\n-\t\t\terror \"Can't use skip_all after running some tests\"\n-\t\tfi\n-\t\ttest -z \"$skip_all\" || skip_all=\" # SKIP $skip_all\"\n-\n \t\tif test $test_external_has_tap -eq 0\n \t\tthen\n \t\t\tif test $test_remaining -gt 0\n \t\t\tthen\n \t\t\t\tsay_color pass \"# passed all $msg\"\n \t\t\tfi\n-\t\t\tsay \"1..$test_count$skip_all\"\n+\n+\t\t\t# Maybe print SKIP message\n+\t\t\ttest -z \"$skip_all\" || skip_all=\"# SKIP $skip_all\"\n+\t\t\tcase \"$test_count\" in\n+\t\t\t0)\n+\t\t\t\tsay \"1..$test_count${skip_all:+ $skip_all}\"\n+\t\t\t\t;;\n+\t\t\t*)\n+\t\t\t\ttest -z \"$skip_all\" ||\n+\t\t\t\tsay_color warn \"$skip_all\"\n+\t\t\t\tsay \"1..$test_count\"\n+\t\t\t\t;;\n+\t\t\tesac\n \t\tfi\n \n \t\ttest -d \"$remove_trash\" &&\n-- \n2.13.0-427-gdfae0f5495\n\n"}]}