[njs] Improved expect tests.
Dmitry Volyntsev
xeioex at nginx.com
Tue May 7 16:50:59 UTC 2019
details: https://hg.nginx.org/njs/rev/a7a632e7d686
branches:
changeset: 954:a7a632e7d686
user: Dmitry Volyntsev <xeioex at nginx.com>
date: Tue May 07 19:50:35 2019 +0300
description:
Improved expect tests.
diffstat:
auto/expect | 3 ++-
njs/test/inputrc | 5 +++++
njs/test/njs_expect_test.exp | 44 ++++++++++++++++++++++++++++++--------------
3 files changed, 37 insertions(+), 15 deletions(-)
diffs (154 lines):
diff -r a84f514e864d -r a7a632e7d686 auto/expect
--- a/auto/expect Mon May 06 05:40:03 2019 +0300
+++ b/auto/expect Tue May 07 19:50:35 2019 +0300
@@ -21,7 +21,8 @@ if [ $nxt_found = yes -a $NXT_HAVE_READL
cat << END >> $NXT_MAKEFILE
njs_expect_test: njs njs/test/njs_expect_test.exp
- PATH=$NXT_BUILD_DIR:\$(PATH) expect -f njs/test/njs_expect_test.exp
+ INPUTRC=njs/test/inputrc PATH=$NXT_BUILD_DIR:\$(PATH) \
+ expect -f njs/test/njs_expect_test.exp
END
else
diff -r a84f514e864d -r a7a632e7d686 njs/test/inputrc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/njs/test/inputrc Tue May 07 19:50:35 2019 +0300
@@ -0,0 +1,5 @@
+set bell-style audible
+set print-completions-horizontally on
+set completion-display-width 0
+set completion-ignore-case on
+set page-completions off
diff -r a84f514e864d -r a7a632e7d686 njs/test/njs_expect_test.exp
--- a/njs/test/njs_expect_test.exp Mon May 06 05:40:03 2019 +0300
+++ b/njs/test/njs_expect_test.exp Tue May 07 19:50:35 2019 +0300
@@ -12,6 +12,18 @@ proc njs_test {body {opts ""}} {
eval spawn -nottycopy njs $opts
}
+ # TODO:
+ # SIGINT handling race condition
+ # deb9-amd64-generic-njs-try
+ # ub1404-armv7-generic-njs-try
+ # ub1804-arm64-generic-njs-try
+ # UTF8 terminal support issue
+ # sol11-amd64-sunpro-njs-try
+ # ub1604-arm64-generic-njs-try
+
+ # set timeout 30
+ # expect_before timeout { exit 1 }
+
expect -re "interactive njs \\d+\.\\d+\.\\d+\r\n\r"
expect "v.<Tab> -> the properties and prototype methods of v.\r
type console.help() for more information\r
@@ -33,7 +45,6 @@ type console.help() for more information
proc njs_run {opts output} {
eval spawn -nottycopy njs $opts
expect -re $output
- expect eof
}
njs_test {
@@ -41,7 +52,7 @@ njs_test {
"njs.version\r\n\*\.\*\.\*"}
}
-# simple multi line interation
+# simple multi line interaction
njs_test {
{"var a = 1\r\n"
"var a = 1\r\nundefined\r\n>> "}
@@ -62,30 +73,33 @@ njs_test {
}
# Global completions, single partial match
+
+# \a* is WORKAROUND for libedit-20170329.3.1-r3
+# which inserts '\rESC[6G' after '\a'.
njs_test {
{"O\t"
- "O\abject"}
+ "O\a*bject"}
}
njs_test {
{"Ma\t"
- "Ma\ath"}
+ "Ma\a*th"}
}
njs_test {
{"conso\t"
- "conso\ale"}
+ "conso\a*le"}
}
# Global completions, multiple partial match
njs_test {
{"cons\t\t"
- "console*console.help*console.time*const"}
+ "console*const"}
}
njs_test {
{"O\t"
- "O\abject"}
+ "O\a*bject"}
{".\t\t"
"Object.create*Object.isSealed"}
}
@@ -97,16 +111,16 @@ njs_test {
njs_test {
{"Object.g\t"
- "Object.g\aet"}
- {"\t"
+ "Object.g\a*et"}
+ {"\t\t"
"Object.getOwnPropertyDescriptor*Object.getPrototypeOf"}
}
njs_test {
{"Ma\t"
- "Ma\ath"}
+ "Ma\a*th"}
{".\t\t"
- "Math.__proto__*Math.cbrt*Math.fround*Math.log2"}
+ "Math.abs*Math.atan2"}
}
# Global completions, no matches
@@ -133,11 +147,13 @@ njs_test {
"a*aa*arguments*await"}
}
+# z*z is WORKAROUND for libedit-20170329.3.1-r3
+# which inserts bogus '\a' between 'z'
njs_test {
{"var zz = 1\r\n"
"var zz = 1\r\nundefined\r\n>> "}
{"1 + z\t\r\n"
- "1 + zz\r\n2"}
+ "1 + z*z*\r\n2"}
}
njs_test {
@@ -375,7 +391,7 @@ njs_test {
{"var fs = require('fs')\r\n"
"undefined\r\n>> "}
{"fs.read\t"
- "fs.read\aFile"}
+ "fs.read\a*File"}
}
# require('fs').readFile()
@@ -641,7 +657,7 @@ njs_run "-v" "\\d+\.\\d+\.\\d+"
njs_test {
{"1+1\r\n"
- "00000 ADD*\r\n00040 STOP*\r\n\r\n2"}
+ "00000 ADD*\r\n*2"}
{"for (var n in [1]) {try {break} finally{}}\r\n"
"00000 ARRAY*\r\n*TRY BREAK*STOP*\r\n\r\nundefined"}
{"(function() {try {return} finally{}})()\r\n"
More information about the nginx-devel
mailing list