summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2012-02-13 16:18:46 -0500
committerNat Goodspeed <nat@lindenlab.com>2012-02-13 16:18:46 -0500
commitd4f887e43ccf0a8b7a84ebbfe6889462a1d9c25f (patch)
treeb646e5cb45e12ed36c648285c7814d0cba97bee2
parent0f2882ec95fc6cd2649fbe4e952ce1bc586bb853 (diff)
Add unit tests for LLProcess::Status functionality.
-rw-r--r--indra/llcommon/tests/llprocess_test.cpp46
1 files changed, 44 insertions, 2 deletions
diff --git a/indra/llcommon/tests/llprocess_test.cpp b/indra/llcommon/tests/llprocess_test.cpp
index 6d2292fb88..711715e373 100644
--- a/indra/llcommon/tests/llprocess_test.cpp
+++ b/indra/llcommon/tests/llprocess_test.cpp
@@ -556,6 +556,41 @@ namespace tut
template<> template<>
void object::test<4>()
{
+ set_test_name("exit(0)");
+ PythonProcessLauncher py("exit(0)",
+ "import sys\n"
+ "sys.exit(0)\n");
+ py.run();
+ ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::EXITED);
+ ensure_equals("Status.mData", py.mPy->getStatus().mData, 0);
+ }
+
+ template<> template<>
+ void object::test<5>()
+ {
+ set_test_name("exit(2)");
+ PythonProcessLauncher py("exit(2)",
+ "import sys\n"
+ "sys.exit(2)\n");
+ py.run();
+ ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::EXITED);
+ ensure_equals("Status.mData", py.mPy->getStatus().mData, 2);
+ }
+
+ template<> template<>
+ void object::test<6>()
+ {
+ set_test_name("syntax_error:");
+ PythonProcessLauncher py("syntax_error:",
+ "syntax_error:\n");
+ py.run();
+ ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::EXITED);
+ ensure_equals("Status.mData", py.mPy->getStatus().mData, 1);
+ }
+
+ template<> template<>
+ void object::test<7>()
+ {
set_test_name("explicit kill()");
PythonProcessLauncher py("kill()",
"from __future__ import with_statement\n"
@@ -588,6 +623,13 @@ namespace tut
{
sleep(1);
}
+#if LL_WINDOWS
+ ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::EXITED);
+ ensure_equals("Status.mData", py.mPy->getStatus().mData, -1);
+#else
+ ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::KILLED);
+ ensure_equals("Status.mData", py.mPy->getStatus().mData, SIGTERM);
+#endif
// If kill() failed, the script would have woken up on its own and
// overwritten the file with 'bad'. But if kill() succeeded, it should
// not have had that chance.
@@ -595,7 +637,7 @@ namespace tut
}
template<> template<>
- void object::test<5>()
+ void object::test<8>()
{
set_test_name("implicit kill()");
NamedTempFile out("out", "not started");
@@ -641,7 +683,7 @@ namespace tut
}
template<> template<>
- void object::test<6>()
+ void object::test<9>()
{
set_test_name("autokill=false");
NamedTempFile from("from", "not started");