[PATCH] cogito: make tutorial-script a testsuite

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] cogito: make tutorial-script a testsuite

From: Pavel Roskin <hidden>
Date: 2016-06-15 22:42:10

Documentation/tutorial-script/script.sh can be used as a testsuite.
Errors should cause the script to exit.  Unexpected success should be
treated like an error.  Successful completion should be reported.

Signed-off-by: Pavel Roskin <redacted>

---

Currently, the last cg-merge invocation doesn't fail as it should, and
the subsequent ed scripts fail for Makefile and rpn.c.  I don't have a
fix for that.  Most likely, the script in cogito differs from the
original version.  Horst, could you please have a look?
diff --git a/Documentation/tutorial-script/script.sh
b/Documentation/tutorial-script/script.sh
index 26adec0..fe43e65 100755
--- a/Documentation/tutorial-script/script.sh
+++ b/Documentation/tutorial-script/script.sh
@@ -1,10 +1,16 @@
-#!/bin/sh
+#!/bin/sh -e
 #
 # FIXME: This script has many GITisms. Some of them are unnecessary, while
 # some stem from missing Cogito features (especially no support for pushing
 # tags, and consequently no support for remotes/).
 
 
+should_fail () {
+	echo "Expected failure, got success - aborting" >&2
+	exit 1
+}
+
+
 ### Set up playground
 sh 0000-playground.sh
 TOP=$(pwd)
@@ -98,7 +104,7 @@ git branch
 # Alice needs to register his remote branch
 cg-branch-add bobswork $BOB/rpn
 # Now try to merge Bob's work to the bob branch
-cg-update bobswork
+cg-update bobswork && should_fail
 
 # There are conflicts in rpn.c. Looking at the file, Alice sees the
 # difference between her version and Bob's:
@@ -190,11 +196,12 @@ cd $ALICE/rpn
 git checkout master
 # Alice tries "git merge" instead of "cg-merge" since she wanted to
 # merge both branches at once, which "cg-merge" cannot do.
-git merge "Integrate changes from Bob and Charlie" master bob charlie
+git merge "Integrate changes from Bob and Charlie" master bob charlie \
+	&& should_fail
 
 # Automatic 3-way merge fails! Have to do it step by step
 
-cg-merge bob
+cg-merge bob && should_fail
 
 # Merge fails:
 
@@ -213,7 +220,7 @@ ed Makefile < $TOP/0017-alice-bob-fixup.
 
 cg-commit -m "Integrate Bob's changes"
 
-cg-merge charlie
+cg-merge charlie && should_fail
 
 # Merge conflicts!
 
@@ -282,10 +289,10 @@ cg-fetch
 # (Note that originally, rpn-0.4 was signed, but that would require you
 # to set up a GPG key before running the script... verify-tag on unsigned
 # scripts does not make much sense.)
-git verify-tag rpn-0.4
+git verify-tag rpn-0.4 && should_fail
 
 # Everything's OK, integrate the changes
-echo "Merge with 0.4" | cg-merge
+echo "Merge with 0.4" | cg-merge && should_fail
 
 # Merge conflicts in Makefile, rpn.c
 # Mishandled stack.h
@@ -296,3 +303,6 @@ cg-add stack.h
 
 # Now commit the whole
 cg-commit -m "Merge with 0.4"
+
+# Great, we are done.
+echo "Script completed successfully!"

-- 
Regards,
Pavel Roskin

Re: [PATCH] cogito: make tutorial-script a testsuite

From: Petr Baudis <hidden>
Date: 2016-06-15 22:42:10

Dear diary, on Thu, Nov 03, 2005 at 02:16:22AM CET, I got a letter
where Pavel Roskin [off-list ref] told me that...
Documentation/tutorial-script/script.sh can be used as a testsuite.
Errors should cause the script to exit.  Unexpected success should be
treated like an error.  Successful completion should be reported.
Thanks, applied. Perhaps we could invoke it during make test as well...

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help