aboutsummaryrefslogtreecommitdiff
path: root/tests/function
diff options
context:
space:
mode:
Diffstat (limited to 'tests/function')
-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
+ }
+}