From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 14/20] Add test_repo_expect_success for running tests in a new repository
Date: Tue, 29 Dec 2015 19:10:37 +0700 [thread overview]
Message-ID: <1451391043-28093-15-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1451391043-28093-1-git-send-email-pclouds@gmail.com>
This could be convenient when tests are independent from the rest in the
same file. Normally we would do this
test_expect_success '...' '
git init foo &&
(
cd foo &&
<script>
)
'
Now we can write a shorter version
test_repo_expect_success '...' '
<script>
'
The other function, test_subdir_expect_success, expands the script to
"( cd <repo> && <script> )", which can be useful for grouping a series of
tests that operate on the same repository in a subdir, e.g.
test_expect_success 'create repo abc' 'test_create_repo abc'
test_subdir_expect_success abc '...' <script>
test_subdir_expect_success abc '...' <another-script>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
t/README | 15 +++++++++++++++
t/test-lib-functions.sh | 20 ++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/t/README b/t/README
index 1dc908e..6fc0d92 100644
--- a/t/README
+++ b/t/README
@@ -743,6 +743,21 @@ library for your script to use.
the symbolic link in the file system and a part that does; then only
the latter part need be protected by a SYMLINKS prerequisite (see below).
+ - test_subdir_expect_success <subdir> [<prereq>] <message> <script>
+ test_subdir_expect_success <subdir> <prereq> <message> <script> <prologue>
+
+ Expands to
+
+ test_expect_success [<prereq>] <message> "( cd <subdir> && <script> )"
+ or
+
+ test_expect_success <prereq> <message> "<prologue> && ( cd <subdir> && <script> )"
+
+ - test_repo_expect_success [<prereq>] <message> <script>
+
+ Create a new repository and perform <script> inside this repository
+ in a subshell.
+
Prerequisites
-------------
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index c64e5a5..3182b9a 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -416,6 +416,26 @@ test_expect_success () {
test_finish_
}
+test_subdir_expect_success () {
+ local subdir="$1"
+ shift
+ case "$#" in
+ 2) test_expect_success "$1" "( cd $subdir && $2 )";;
+ 3) test_expect_success "$1" "$2" "( cd $subdir && $3 )";;
+ 4) test_expect_success "$1" "$2" "$4 && ( cd $subdir && $3 )";;
+ *) error "bug in the test script: not 3-5 parameters to test-subdir-expect-success";;
+ esac
+}
+
+test_repo_expect_success () {
+ local repo=repo-$(($test_count+1))
+ case "$#" in
+ 2) test_subdir_expect_success "$repo" '' "$1" "$2" "test_create_repo $repo";;
+ 3) test_subdir_expect_success "$repo" "$1" "$2" "$3" "test_create_repo $repo";;
+ *) error "bug in the test script: not 2 or 3 parameters to test-repo-expect-success";;
+ esac
+}
+
# test_external runs external test scripts that provide continuous
# test output about their progress, and succeeds/fails on
# zero/non-zero exit code. It outputs the test output on stdout even
--
2.3.0.rc1.137.g477eb31
next prev parent reply other threads:[~2015-12-29 12:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-29 12:10 [PATCH 00/20] More flexibility in making shallow clones Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 01/20] upload-pack: move shallow deepen code out of receive_needs() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 02/20] upload-pack: move "shallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 03/20] upload-pack: remove unused variable "backup" Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 04/20] upload-pack: move "unshallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 05/20] shallow.c: implement a generic shallow boundary finder based on rev-list Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 06/20] upload-pack: glue code to use get_shallow_commits_by_rev_list Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 07/20] upload-pack: use skip_prefix() instead of starts_with() when possible Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 08/20] upload-pack: tighten number parsing at "deepen" lines Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 09/20] upload-pack: add deepen-since to cut shallow repos based on time Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 10/20] fetch-pack: use a common function for verbose printing Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 11/20] fetch-pack: use a separate flag for fetch in deepening mode Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 12/20] fetch: define shallow boundary with --since Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 13/20] clone: define shallow clone boundary based on time " Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` Nguyễn Thái Ngọc Duy [this message]
2015-12-29 14:12 ` [PATCH 14/20] Add test_repo_expect_success for running tests in a new repository Duy Nguyen
2015-12-29 12:10 ` [PATCH 15/20] t5500: test for shallow depth since a specific date Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 16/20] upload-pack: support define shallow boundary by excluding revisions Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 17/20] fetch: define shallow boundary with --not Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 18/20] clone: define shallow clone " Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 19/20] t5500: test for shallow depth excluding a ref Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 20/20] fetch: add --deepen=<N> to extend shallow boundary by <N> commits Nguyễn Thái Ngọc Duy
2016-01-04 9:45 ` Eric Sunshine
2015-12-29 19:09 ` [PATCH 00/20] More flexibility in making shallow clones Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1451391043-28093-15-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).