added support files
This commit is contained in:
parent
5067f03322
commit
13f0d05de5
Binary file not shown.
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- WARNING: Eclipse auto-generated file.
|
||||||
|
Any modifications will be overwritten.
|
||||||
|
To include a user specific buildfile here, simply create one in the same
|
||||||
|
directory with the processing instruction <?eclipse.ant.import?>
|
||||||
|
as the first entry and export the buildfile again. --><project basedir="." default="build">
|
||||||
|
<property environment="env"/>
|
||||||
|
<property name="debuglevel" value="source,lines,vars"/>
|
||||||
|
<property name="target" value="1.8"/>
|
||||||
|
<property name="source" value="1.8"/>
|
||||||
|
<target name="init">
|
||||||
|
<mkdir dir="bin"/>
|
||||||
|
<copy includeemptydirs="false" todir="bin">
|
||||||
|
<fileset dir="src">
|
||||||
|
<exclude name="**/*.launch"/>
|
||||||
|
<exclude name="**/*.java"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
</target>
|
||||||
|
<target name="clean">
|
||||||
|
<delete dir="bin"/>
|
||||||
|
</target>
|
||||||
|
<target depends="clean" name="cleanall"/>
|
||||||
|
<target depends="build-subprojects,build-project" name="build"/>
|
||||||
|
<target name="build-subprojects"/>
|
||||||
|
<target depends="init" name="build-project">
|
||||||
|
<javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}">
|
||||||
|
<src path="src"/>
|
||||||
|
</javac>
|
||||||
|
</target>
|
||||||
|
<target name="make-jar" depends="build">
|
||||||
|
<mkdir dir="jars"/>
|
||||||
|
<jar destfile="jars/simulator.jar" basedir="bin">
|
||||||
|
<manifest>
|
||||||
|
<attribute name="Main-Class" value="main.Main"/>
|
||||||
|
</manifest>
|
||||||
|
</jar>
|
||||||
|
</target>
|
||||||
|
</project>
|
|
@ -0,0 +1,40 @@
|
||||||
|
.data
|
||||||
|
a:
|
||||||
|
40
|
||||||
|
20
|
||||||
|
50
|
||||||
|
60
|
||||||
|
80
|
||||||
|
30
|
||||||
|
10
|
||||||
|
70
|
||||||
|
n:
|
||||||
|
8
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
sub %x3, %x3, %x3
|
||||||
|
sub %x4, %x4, %x4
|
||||||
|
load %x0, $n, %x8
|
||||||
|
outerloop:
|
||||||
|
blt %x3, %x8, innerloop
|
||||||
|
end
|
||||||
|
addi %x3, 1, %x4
|
||||||
|
innerloop:
|
||||||
|
addi %x3, 1, %x4
|
||||||
|
innerloopz:
|
||||||
|
blt %x4, %x8, swap
|
||||||
|
addi %3, 1, %x3
|
||||||
|
jmp outerloop
|
||||||
|
swap:
|
||||||
|
load %x3, $a, %x5
|
||||||
|
load %x4, $a, %x6
|
||||||
|
blt %x5, %x6, exchange
|
||||||
|
addi %x4, 1, %x4
|
||||||
|
jmp innerloopz
|
||||||
|
exchange:
|
||||||
|
sub %x7, %x7, %x7
|
||||||
|
add %x0, %x5, %x7
|
||||||
|
store %x6, 0, %x3
|
||||||
|
store %x7, 0, %x4
|
||||||
|
addi %x4, 1, %x4
|
||||||
|
jmp innerloopz
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
Hash of the Processor State = 255541867
|
Binary file not shown.
|
@ -0,0 +1,15 @@
|
||||||
|
.data
|
||||||
|
n:
|
||||||
|
11
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
load %x0, $n, %x3
|
||||||
|
divi %x3, 2, %x3
|
||||||
|
beq %x0, %x31, even
|
||||||
|
sub %x10, %x10, %x10
|
||||||
|
addi %x10, 1, %x10
|
||||||
|
end
|
||||||
|
even:
|
||||||
|
sub %x10, $x10, %x10
|
||||||
|
subi %x10, 1, %x10
|
||||||
|
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
Hash of the Processor State = -224294686
|
Binary file not shown.
|
@ -0,0 +1,28 @@
|
||||||
|
.data
|
||||||
|
n:
|
||||||
|
10
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
addi %x0, 0, %x3
|
||||||
|
addi %x0, 1, %x4
|
||||||
|
add %x3, %x4, %x5
|
||||||
|
load %x0, $n, %x6
|
||||||
|
addi %x0, 65535, %x7
|
||||||
|
addi %x0, 0, %x8
|
||||||
|
store %x3, 0, %x7
|
||||||
|
subi %x7, 1, %x7
|
||||||
|
addi %x8, 1, %x8
|
||||||
|
store %x4, 0, %x7
|
||||||
|
subi %x7, 1, %x7
|
||||||
|
addi %x8, 1, %x8
|
||||||
|
for:
|
||||||
|
blt %x8, %x6, loop
|
||||||
|
end
|
||||||
|
loop:
|
||||||
|
add %x3, %x4, %x5
|
||||||
|
store %x5, 0, %x7
|
||||||
|
subi %x7, 1, %x7
|
||||||
|
addi %x8, 1, %x8
|
||||||
|
add %x0, %x4, %x3
|
||||||
|
add %x0, %x5, %x4
|
||||||
|
jmp for
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
Hash of the Processor State = -1518357572
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
.data
|
||||||
|
a:
|
||||||
|
4567654
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
load %x0, $a, %x3
|
||||||
|
sub %x7, %x7, %x7
|
||||||
|
loop:
|
||||||
|
divi %x3, 10, %x4
|
||||||
|
addi %x31, 0, %x30
|
||||||
|
muli %x7, 10, %x7
|
||||||
|
add %x7, %x30, %x7
|
||||||
|
divi %x3, 10, %x3
|
||||||
|
bgt %x3, %x0, loop
|
||||||
|
load %x0, $a, %x5
|
||||||
|
beq %x5, %x7, palindrome
|
||||||
|
sub %x10, %x10, %x10
|
||||||
|
subi %x10, 1, %x10
|
||||||
|
end
|
||||||
|
palindrome:
|
||||||
|
sub %x10, %x10, %x10
|
||||||
|
addi %x10, 1, %x10
|
||||||
|
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,2 @@
|
||||||
|
Hash of the Processor State = 155317940
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
||||||
|
.data
|
||||||
|
a:
|
||||||
|
11
|
||||||
|
.text
|
||||||
|
main:
|
||||||
|
load %x0, $a, %x3
|
||||||
|
sub %x4, %x4, %x4
|
||||||
|
divi %x3, 2, %x4
|
||||||
|
sub %x6, %x6, %x6
|
||||||
|
addi %x6, 2, %x6
|
||||||
|
for:
|
||||||
|
bgt %x6, %x4, prime
|
||||||
|
div %x3, %x6, %x7
|
||||||
|
beq %x0, %x31, notprime
|
||||||
|
addi %x6, 1, %x6
|
||||||
|
jmp for
|
||||||
|
prime:
|
||||||
|
sub %x10, %x10, %x10
|
||||||
|
addi %x10, 1, %x10
|
||||||
|
end
|
||||||
|
notprime:
|
||||||
|
sub %x10, %x10, %x10
|
||||||
|
subi %x10, 1, %x10
|
||||||
|
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
Hash of the Processor State = -1414219998
|
Binary file not shown.
|
@ -0,0 +1,92 @@
|
||||||
|
#!/bin/python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import zipfile
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
from threading import Timer
|
||||||
|
|
||||||
|
zip_file = sys.argv[1]
|
||||||
|
|
||||||
|
l = len(zip_file.split("/"))
|
||||||
|
print "Students :"
|
||||||
|
for i in range(0, len(zip_file.split("/")[l-1].split("_"))):
|
||||||
|
print zip_file.split("/")[l-1].split("_")[i].split(".")[0]
|
||||||
|
print ""
|
||||||
|
|
||||||
|
submissions_temp_dir = "./submissions/"
|
||||||
|
|
||||||
|
if not os.path.exists(submissions_temp_dir):
|
||||||
|
os.mkdir(submissions_temp_dir)
|
||||||
|
|
||||||
|
zip_ref = zipfile.ZipFile(zip_file, 'r')
|
||||||
|
zip_ref.extractall(submissions_temp_dir)
|
||||||
|
zip_ref.close()
|
||||||
|
|
||||||
|
shutil.copyfile("build.xml", submissions_temp_dir + "/build.xml")
|
||||||
|
|
||||||
|
os.chdir(submissions_temp_dir)
|
||||||
|
|
||||||
|
stdout_file = open("./tmp.output", 'a')
|
||||||
|
popen_args = ["ant", "make-jar"]
|
||||||
|
proc = subprocess.Popen(popen_args, stdout = stdout_file, stderr = stdout_file)
|
||||||
|
timer = Timer(5, proc.kill)
|
||||||
|
try:
|
||||||
|
timer.start()
|
||||||
|
stdout, stderr = proc.communicate()
|
||||||
|
finally:
|
||||||
|
timer.cancel()
|
||||||
|
stdout_file.close()
|
||||||
|
|
||||||
|
if not os.path.exists("jars/simulator.jar"):
|
||||||
|
print "compilation failed. jar file not created"
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
test_cases_dir = "../test_cases"
|
||||||
|
total_marks = 0
|
||||||
|
scored_marks = 0
|
||||||
|
for testcase in os.listdir(test_cases_dir):
|
||||||
|
if ".out" in testcase:
|
||||||
|
total_marks = total_marks + 1
|
||||||
|
|
||||||
|
stdout_file = open("./" + testcase.split(".")[0] + ".observedoutput", 'w')
|
||||||
|
popen_args = ["java", "-Xmx1g", "-jar", "jars/simulator.jar", "./src/configuration/config.xml", "./" + testcase.split(".")[0] + ".observedstat", test_cases_dir + "/" + testcase]
|
||||||
|
# print popen_args
|
||||||
|
proc = subprocess.Popen(popen_args, stdout = stdout_file, stderr = stdout_file)
|
||||||
|
timer = Timer(5, proc.kill)
|
||||||
|
try:
|
||||||
|
timer.start()
|
||||||
|
stdout, stderr = proc.communicate()
|
||||||
|
finally:
|
||||||
|
timer.cancel()
|
||||||
|
stdout_file.close()
|
||||||
|
|
||||||
|
if os.path.exists("./" + testcase.split(".")[0] + ".observedoutput"):
|
||||||
|
expectedoutput_file = open(test_cases_dir + "/" + testcase.split(".")[0] + ".expected")
|
||||||
|
expected_hash = expectedoutput_file.readline()
|
||||||
|
expectedoutput_file.close()
|
||||||
|
|
||||||
|
correct = False
|
||||||
|
observedoutput_file = open("./" + testcase.split(".")[0] + ".observedoutput")
|
||||||
|
for line in observedoutput_file:
|
||||||
|
# if "Hash" in line:
|
||||||
|
# print "computed = " + line
|
||||||
|
# print "expected = " + expected_hash
|
||||||
|
if line == expected_hash:
|
||||||
|
correct = True
|
||||||
|
break
|
||||||
|
observedoutput_file.close()
|
||||||
|
if correct == True:
|
||||||
|
scored_marks = scored_marks + 1
|
||||||
|
print testcase + " : PASS!"
|
||||||
|
else:
|
||||||
|
print testcase + " : fail - incorrect hash"
|
||||||
|
else:
|
||||||
|
print testcase + " : fail - standard output file not created"
|
||||||
|
|
||||||
|
os.chdir("..")
|
||||||
|
|
||||||
|
shutil.rmtree(submissions_temp_dir)
|
||||||
|
|
||||||
|
print "\ntotal score = " + str(scored_marks) + " out of " + str(total_marks)
|
Loading…
Reference in New Issue