aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-02-10 22:09:59 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-02-12 16:49:44 +0300
commitd712f69f5f769c5eaada3c1f76419abfb7b6f7ed (patch)
treea7b36e3e87ce5ef71610f864645dbd7bc339a997 /tests
parent5524dcb9a9b10a65e450458eb76c84451a283ccc (diff)
Add builtins support for $process.run*() functions
Diffstat (limited to 'tests')
-rw-r--r--tests/function/process/testscript144
1 files changed, 128 insertions, 16 deletions
diff --git a/tests/function/process/testscript b/tests/function/process/testscript
index eaa8e2e..1da733d 100644
--- a/tests/function/process/testscript
+++ b/tests/function/process/testscript
@@ -5,25 +5,137 @@
: run
:
-$* <<EOI >>~/EOO/
-print $process.run($build.path --version)
-EOI
-/build2 .+/
-/.+/*
-EOO
+{
+ : process
+ :
+ {
+ $* <<EOI >>~/EOO/
+ print $process.run($build.path --version)
+ EOI
+ /build2 .+/
+ /.+/*
+ EOO
+ }
+
+ : bultin
+ :
+ {
+ echo 'abc' >=f;
+
+ $* <<EOI >>EOO
+ print $process.run(sed -e 's/abc/xyz/' f)
+ EOI
+ xyz
+ EOO
+ }
+
+ : escape-bultin
+ :
+ if ($cxx.target.class == 'linux')
+ {
+ cat <<EOI >=f;
+ a
+
+
+ b
+ EOI
+
+ $* <<EOI >>EOO
+ print $process.run(^cat --squeeze-blank f)
+ EOI
+ a
+
+ b
+ EOO
+ }
+}
: run-regex-match
:
-$* <<EOI >>~/EOO/
-print $process.run_regex($build.path --version, 'build2 .+')
-EOI
-/build2 .+/
-EOO
+{
+ : process
+ :
+ {
+ : success
+ :
+ {
+ $* <<EOI >>~/EOO/
+ print $process.run_regex($build.path --version, 'build2 .+')
+ EOI
+ /build2 .+/
+ EOO
+ }
+
+ : failure
+ :
+ {
+ $* <<EOI 2>>~/EOE/ != 0
+ print $process.run_regex($build.path --version, 'build2 (.+')
+ EOI
+ /error: invalid argument: invalid regex .+/
+ /.+
+ EOE
+ }
+ }
+
+ : builtin
+ :
+ {
+ : success
+ :
+ {
+ cat <<EOI >=f;
+ 123
+ abc
+ EOI
+
+ $* <<EOI >>EOO
+ print $process.run_regex(cat f, 'a.+')
+ EOI
+ abc
+ EOO
+ }
+
+ : failure
+ :
+ {
+ echo 'a' >=f;
+
+ $* <<EOI 2>>~/EOE/ != 0
+ print $process.run_regex(cat f, 'a(.+')
+ EOI
+ /error: invalid argument: invalid regex .+/
+ /.+
+ EOE
+ }
+ }
+}
: run-regex-replace
:
-$* <<EOI >>~/EOO/
-print $process.run_regex($build.path --version, 'build2 ([0-9.]+).*', '\1')
-EOI
-/[0-9]+.[0-9]+.[0-9]+/d
-EOO
+{
+ : process
+ :
+ {
+ $* <<EOI >>~/EOO/
+ print $process.run_regex($build.path --version, 'build2 ([0-9.]+).*', '\1')
+ EOI
+ /[0-9]+.[0-9]+.[0-9]+/d
+ EOO
+ }
+
+ : builtin
+ :
+ {
+ cat <<EOI >=f;
+ 123
+ abc
+ EOI
+
+ $* <<EOI >>EOO
+ print $process.run_regex(cat f, 'a(.+)', 'x\1')
+ EOI
+ xbc
+ EOO
+ }
+}