summaryrefslogtreecommitdiff
path: root/testapp/test_server.py
diff options
context:
space:
mode:
authorPrabhu Ramachandran2013-07-03 04:26:40 -0700
committerPrabhu Ramachandran2013-07-03 04:26:40 -0700
commitee64cfe58c42540d0736cc32d3acd36ab7a6d31d (patch)
tree6104cea3d6682e8d101da7f44ad645e7e00fc4f1 /testapp/test_server.py
parentfe868c043487af8ea390165325309ad29daacc8e (diff)
parent7b18a329a2692d3f85fbe71fa99ceee9838b85c8 (diff)
downloadonline_test-ee64cfe58c42540d0736cc32d3acd36ab7a6d31d.tar.gz
online_test-ee64cfe58c42540d0736cc32d3acd36ab7a6d31d.tar.bz2
online_test-ee64cfe58c42540d0736cc32d3acd36ab7a6d31d.zip
Merge pull request #12 from prathamesh920/fresh_C_Cpp
Fresh c cpp
Diffstat (limited to 'testapp/test_server.py')
-rw-r--r--testapp/test_server.py104
1 files changed, 94 insertions, 10 deletions
diff --git a/testapp/test_server.py b/testapp/test_server.py
index 0790816..5c88d73 100644
--- a/testapp/test_server.py
+++ b/testapp/test_server.py
@@ -6,6 +6,7 @@ up the code server as::
"""
from exam.xmlrpc_clients import code_server
+
def check_result(result, check='correct answer'):
if check != 'correct answer':
assert result[0] == False
@@ -15,33 +16,115 @@ def check_result(result, check='correct answer'):
assert result[0], result[1]
assert check in result[1].lower(), result[1]
+
def test_python():
"""Test if server runs Python code as expected."""
src = 'while True: pass'
result = code_server.run_code(src, '', '/tmp', language="python")
check_result(result, 'more than ')
-
src = 'x = 1'
- result = code_server.run_code(src, 'assert x == 1', '/tmp',
+ result = code_server.run_code(src, 'assert x == 1', '/tmp',
language="python")
check_result(result, 'correct answer')
- result = code_server.run_code(src, 'assert x == 0', '/tmp',
+ result = code_server.run_code(src, 'assert x == 0', '/tmp',
language="python")
check_result(result, 'assertionerror')
src = 'abracadabra'
- result = code_server.run_code(src, 'assert x == 0', '/tmp',
+ result = code_server.run_code(src, 'assert x == 0', '/tmp',
language="python")
check_result(result, 'nameerror')
+
+def test_c():
+ """Test if server runs c code as expected."""
+ src = """
+ #include<stdiol.h>
+ int ad(int a, int b)
+ {return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C")
+ check_result(result, 'error')
+
+ src = """
+ int add(int a, int b)
+ {return a+b}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C")
+ check_result(result, 'compilation error')
+
+ src = """
+ int add(int a, int b)
+ {while(1>0){}
+ return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C")
+ check_result(result, 'more than')
+
+ src = """
+ int add(int a, int b)
+ {return a+b;}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C")
+ check_result(result, 'correct answer')
+
+ src = """
+ #include<stdio.h>
+ int add(int a, int b)
+ {printf("All Correct");}
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C")
+ check_result(result, 'incorrect')
+
+
+def test_cpp():
+ """Test if server runs c code as expected."""
+ src = """
+ int add(int a, int b)
+ {
+ return a+b
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C++")
+ check_result(result, 'compilation error')
+
+ src = """
+ int add(int a, int b)
+ {
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C++")
+ check_result(result, 'correct answer')
+
+ src = """
+ int dd(int a, int b)
+ {
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C++")
+ check_result(result, 'error')
+
+ src = """
+ int add(int a, int b)
+ {
+ while(0==0)
+ {}
+ return a+b;
+ }
+ """
+ result = code_server.run_code(src, 'c_cpp_files/main.cpp', '/tmp', language="C++")
+ check_result(result, 'more than')
+
def test_bash():
"""Test if server runs Bash code as expected."""
src = """
#!/bin/bash
[[ $# -eq 2 ]] && echo $(( $1 + $2 )) && exit $(( $1 + $2 ))
"""
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result)
@@ -49,7 +132,7 @@ def test_bash():
#!/bin/bash
[[ $# -eq 2 ]] && echo $(( $1 - $2 )) && exit $(( $1 - $2 ))
"""
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'error')
@@ -57,7 +140,7 @@ def test_bash():
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null ; done
"""
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'more than ')
@@ -65,15 +148,15 @@ def test_bash():
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null
'''
- result = code_server.run_code(src,
- 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
+ result = code_server.run_code(src,
+ 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'error')
src = '''# Enter your code here.
#!/bin/bash
while [ 1 ] ; do echo "" > /dev/null
'''
- result = code_server.run_code(src,
+ result = code_server.run_code(src,
'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash")
check_result(result, 'oserror')
@@ -81,3 +164,4 @@ if __name__ == '__main__':
test_python()
test_bash()
test_c()
+ test_cpp()