aboutsummaryrefslogtreecommitdiff
path: root/tests/default-options/testscript
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-08-10 17:14:37 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-08-12 18:35:37 +0300
commitd20d2a641351b7f9e8c9bd9b841d8de4d824aa82 (patch)
tree8ac63c12a5c45f1e1a8159fc07d76575cb82a147 /tests/default-options/testscript
parent800bf1b9f67aae867ffe900a545444dfe8aa46c9 (diff)
Add default options loading and merging API
Diffstat (limited to 'tests/default-options/testscript')
-rw-r--r--tests/default-options/testscript109
1 files changed, 109 insertions, 0 deletions
diff --git a/tests/default-options/testscript b/tests/default-options/testscript
new file mode 100644
index 0000000..c0c3816
--- /dev/null
+++ b/tests/default-options/testscript
@@ -0,0 +1,109 @@
+# file : tests/default-options/testscript
+# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Note that when cross-testing the driver may not be able to run the command
+# due to the meaningless program path.
+#
++if ($test.target != $build.host)
+ exit
+end
+
+sys_dir = $canonicalize([dir_path] $~/build2)
++mkdir -p $sys_dir/local
+
++echo 'sys-foo' >=$sys_dir/foo
++echo 'sys-bar' >=$sys_dir/bar
++echo 'sys-local-foo' >=$sys_dir/local/foo
++echo 'sys-local-bar' >=$sys_dir/local/bar
+
+home_dir = $canonicalize([dir_path] $~/home)
++mkdir -p $home_dir/.build2/local/
+
++echo 'home-foo' >=$home_dir/.build2/foo
++echo 'home-bar' >=$home_dir/.build2/bar
++echo 'home-local-foo' >=$home_dir/.build2/local/foo
++echo 'home-local-bar' >=$home_dir/.build2/local/bar
+
+: in-home
+:
+{
+ d = $home_dir/work/.build2
+ +mkdir -p $d/local/
+
+ +echo 'work-foo' >=$d/foo
+ +echo 'work-bar' >=$d/bar
+ +echo 'work-local-foo' >=$d/local/foo
+ +echo 'work-local-bar' >=$d/local/bar
+
+ d = $home_dir/work/project/.build2
+ +mkdir -p $d/local/
+ +touch $home_dir/work/project/.git
+
+ +echo 'project-foo' >=$d/foo
+ +echo 'project-bar' >=$d/bar
+ +echo 'project-local-foo' >=$d/local/foo
+ +echo 'project-local-bar' >=$d/local/bar
+
+ d = $home_dir/work/project/package/.build2
+ +mkdir -p $d/local/
+
+ +echo 'package-foo' >=$d/foo
+ +echo 'package-bar' >=$d/bar
+ +echo 'package-local-foo' >=$d/local/foo
+ +echo 'package-local-bar' >=$d/local/bar
+
+ start_dir = $canonicalize([dir_path] $home_dir/work/project/package)
+
+ : entries
+ :
+ $* -e -f foo -f bar -d $start_dir -s $sys_dir -h $home_dir cmd-foo cmd-bar >>/~%EOO%d
+ %\.+/build2/foo,sys-foo,false%
+ %\.+/build2/bar,sys-bar,false%
+ %\.+/build2/local/foo,sys-local-foo,false%
+ %\.+/build2/local/bar,sys-local-bar,false%
+ %\.+/home/.build2/foo,home-foo,false%
+ %\.+/home/.build2/bar,home-bar,false%
+ %\.+/home/.build2/local/foo,home-local-foo,false%
+ %\.+/home/.build2/local/bar,home-local-bar,false%
+ %\.+/home/work/.build2/foo,work-foo,false%
+ %\.+/home/work/.build2/bar,work-bar,false%
+ %\.+/home/work/.build2/local/foo,work-local-foo,false%
+ %\.+/home/work/.build2/local/bar,work-local-bar,false%
+ %\.+/home/work/project/.build2/foo,project-foo,true%
+ %\.+/home/work/project/.build2/bar,project-bar,true%
+ %\.+/home/work/project/.build2/local/foo,project-local-foo,true%
+ %\.+/home/work/project/.build2/local/bar,project-local-bar,true%
+ %\.+/home/work/project/package/.build2/foo,package-foo,true%
+ %\.+/home/work/project/package/.build2/bar,package-bar,true%
+ %\.+/home/work/project/package/.build2/local/foo,package-local-foo,true%
+ %\.+/home/work/project/package/.build2/local/bar,package-local-bar,true%
+ EOO
+
+ : merged
+ :
+ $* -f foo -f bar -d $start_dir -s $sys_dir -h $home_dir cmd-foo cmd-bar >>EOO
+ sys-foo
+ sys-bar
+ sys-local-foo
+ sys-local-bar
+ home-foo
+ home-bar
+ home-local-foo
+ home-local-bar
+ work-foo
+ work-bar
+ work-local-foo
+ work-local-bar
+ project-foo
+ project-bar
+ project-local-foo
+ project-local-bar
+ package-foo
+ package-bar
+ package-local-foo
+ package-local-bar
+ cmd-foo
+ cmd-bar
+ EOO
+}