Esempio n. 1
0
    def test_run_c_container_ok(self):
        source = """#include <stdio.h>
#include <stdlib.h>  



int main (int argc, char *argv[]) {
 int i=0, tmp;

   FILE *fptr;
fptr = fopen("/tmp/out.txt", "w");


 for (i=1; i< argc; i++) {
tmp = 2 * atoi(argv[i]);
     fprintf(fptr, "%d ", tmp);
 }
fclose(fptr);

 return 0;
 }"""

        bldr = builder.AppBuilder()
        a = bldr.assembly(source, "c")

        tag = "test:test"
        self.docker.build_image(bldr.docker_file_folder, tag)

        result = self.docker.run_time_container(tag,
                                                " ./source.out 1 2 3",
                                                memory_limit=20,
                                                mem_swappiness=0,
                                                timeout=10)

        self.assertEqual(result[1], "2 4 6 ")
Esempio n. 2
0
    def test_run_python_container_timeout(self):
        source = """while 1:
    pass """

        bldr = builder.AppBuilder()
        bldr.assembly(source, "python")

        tag = "test:test"
        self.docker.build_image(bldr.docker_file_folder, tag)

        result = self.docker.run_time_container(tag,
                                                " python3 source.py 1 2 3",
                                                memory_limit=20,
                                                mem_swappiness=0,
                                                timeout=3)
        self.docker.rm_image("test:test")

        self.assertIsNone(result)
Esempio n. 3
0
    def test_run_python_container_error(self):
        source = """while 1g:
    pass """

        bldr = builder.AppBuilder()
        bldr.assembly(source, "python")

        tag = "test:test"
        self.docker.build_image(bldr.docker_file_folder, tag)

        result = self.docker.run_time_container(tag,
                                                " python3 source.py 1 2 3",
                                                memory_limit=20,
                                                mem_swappiness=0,
                                                timeout=3)
        self.docker.rm_image("test:test")

        self.assertEqual(
            '  File "source.py", line 1\n    while 1g:\n           ^\nSyntaxError: invalid syntax\n',
            result[1])
Esempio n. 4
0
    def test_run_python_container_wrong_answer(self):
        source = """import sys
f = open("/tmp/out.txt", "w")
for x in sys.argv[1:]:
	print(3*int(x), end=' ', file=f)
f.close()"""

        bldr = builder.AppBuilder()
        bldr.assembly(source, "python")

        tag = "test:test"
        self.docker.build_image(bldr.docker_file_folder, tag)

        result = self.docker.run_time_container(tag,
                                                " python3 source.py 1 2 3",
                                                memory_limit=100,
                                                mem_swappiness=0,
                                                timeout=10)
        self.docker.rm_image("test:test")

        self.assertNotEqual(result[1], "2 4 6 ")
Esempio n. 5
0
def cmd_build(entities, pymk_root, args):
    print("======[Start to build applications]=========")
    for app in entities.apps:
        builder.AppBuilder(app, pymk_root)
    print("======[Finished building applications]======")
Esempio n. 6
0
 def setUp(self):
     self.app_builder = builder.AppBuilder()