aboutsummaryrefslogtreecommitdiff
path: root/tests/update.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/update.testscript')
-rw-r--r--tests/update.testscript91
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/update.testscript b/tests/update.testscript
new file mode 100644
index 0000000..947abab
--- /dev/null
+++ b/tests/update.testscript
@@ -0,0 +1,91 @@
+# file : tests/update.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Here we test both update and clean commands.
+#
+
+.include common.testscript
+
+cxx = cc config.cxx="$recall($cxx.path)"
+
+new += 2>!
+init += $cxx -d prj 2>!
+deinit += -d prj
+
+: single-pkg-cfg
+:
+{
+ $new -C @cfg prj $cxx &prj/*** &prj-cfg/***;
+
+ $* -d prj 2>>~%EOE%;
+ %(mkdir|c\+\+|ld) .+%{3}
+ EOE
+
+ $clean -d prj 2>>~%EOE%;
+ %rm .+%{3}
+ EOE
+
+ $deinit 2>>/"EOE"
+ deinitializing in project $~/prj/
+ synchronizing:
+ drop prj
+ EOE
+}
+
+: multi-pkg-cfg
+:
+{
+ $new -t empty prj &prj/***;
+
+ $new --package pkg1 -d prj;
+ $new --package pkg2 -d prj;
+
+ $init -C @cfg1 &prj-cfg1/***;
+ $init -C @cfg2 &prj-cfg2/***;
+
+ # Update.
+ #
+ $* -d prj/pkg1 2>>~%EOE%; # Default (cfg1).
+ %(mkdir|c\+\+|ld) .+%{3}
+ EOE
+
+ $* @cfg2 -d prj/pkg1 2>>~%EOE%; # By name (cfg2).
+ %(mkdir|c\+\+|ld) .+%{3}
+ EOE
+
+ $* --all -d prj 2>>~%EOE%; # All configs (and packages).
+ in configuration @cfg1:
+ %(mkdir|c\+\+|ld|info:) .+%{4}
+
+ in configuration @cfg2:
+ %(mkdir|c\+\+|ld|info:) .+%{4}
+ EOE
+
+ # Clean.
+ #
+ $clean -d prj/pkg1 2>>~%EOE%; # Default (cfg1).
+ %rm .+%{3}
+ EOE
+
+ $clean @cfg2 -d prj/pkg1 2>>~%EOE%; # By name (cfg2).
+ %rm .+%{3}
+ EOE
+
+ $clean --all -d prj 2>>~%EOE%; # All configs (and packages).
+ in configuration @cfg1:
+ %(rm|info:) .+%{4}
+
+ in configuration @cfg2:
+ %(rm|info:) .+%{4}
+ EOE
+
+ $deinit 2>>/"EOE"
+ deinitializing in project $~/prj/
+ deinitializing package pkg1
+ deinitializing package pkg2
+ synchronizing:
+ drop pkg1
+ drop pkg2
+ EOE
+}