source: ogServer-Git/tests/run-tests.py @ 0b5c081

Last change on this file since 0b5c081 was 0b5c081, checked in by OpenGnSys Support Team <soporte-og@…>, 3 years ago

#915 Stop ogServer service in run-test.py

Python test script launches its own ogServer to run tests. If there is
another ogServer running at the same time, it interferes with tests.

Installing ogServer in a machine results in an enabled ogServer service.

Stop ogServer service before tests just in case the user installed
ogServer in the machine.

  • Property mode set to 100755
File size: 2.4 KB
Line 
1#!/usr/bin/env python3
2
3import subprocess, glob, time, os
4
5sql_data = "INSERT INTO aulas (nombreaula, idcentro, urlfoto, grupoid, ubicacion, puestos, modomul, ipmul, pormul, velmul, router, netmask, ntp, dns, proxy, modp2p, timep2p) VALUES  ('Aula virtual', 1, 'aula.jpg', 0, 'Despliegue virtual con Vagrant.', 5, 2, '239.194.2.11', 9000, 70, '192.168.56.1', '255.255.255.0', '', '', '', 'peer', 30); INSERT INTO ordenadores (nombreordenador, ip, mac, idaula, idrepositorio, idperfilhard, idmenu, idproautoexec, grupoid, router, mascara, arranque, netiface, netdriver, fotoord) VALUES ('pc2', '192.168.2.1', '0800270E6501', 1, 1, 0, 0, 0, 0, '192.168.56.1', '255.255.255.0', '00unknown', 'eth0', 'generic', 'fotoordenador.gif'), ('pc2', '192.168.2.2', '0800270E6502', 1, 1, 0, 0, 0, 0, '192.168.56.1', '255.255.255.0', '00unknown', 'eth0', 'generic', 'fotoordenador.gif');"
6
7sql_create_user = "CREATE USER 'test-db'@'localhost'; GRANT ALL PRIVILEGES ON *.* To 'test-db'@'localhost' IDENTIFIED BY 'test-db';"
8
9sql_delete_user = "DROP USER 'test-db'@'localhost';"
10
11def start_mysql():
12
13    subprocess.run(['mysqladmin', 'drop', '-f', 'test-db'],
14            stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
15    subprocess.run(['mysqladmin', 'create', 'test-db'])
16    subprocess.run('mysql --default-character-set=utf8 test-db < ../cfg/ogAdmBD.sql', shell=True)
17    subprocess.run(['mysql', '-D', 'test-db', '-e', sql_data])
18    subprocess.run(['mysql', '-D', 'test-db', '-e', sql_create_user])
19
20def stop_mysql():
21
22    subprocess.run(['mysql', '-D', 'test-db', '-e', sql_delete_user])
23    subprocess.run(['mysqladmin', 'drop', '-f', 'test-db'])
24
25if os.getuid() is not 0:
26    print('You need to be root to run these tests :-)')
27    exit()
28
29if os.path.isfile('../ogserver') is not True:
30    print('You need to build the ogserver binary to run these tests :-)')
31    exit()
32
33if os.path.isfile('/usr/bin/valgrind') is not True:
34    print('You need valgrind to run these tests :-)')
35    exit()
36
37print("Stopping ogServer service...")
38subprocess.run(['systemctl', 'stop', 'ogserver'])
39
40start_mysql();
41
42subprocess.Popen(['valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=./valgrind-out.log ../ogserver -f config/ogserver.json'], shell=True)
43
44print("Waiting 5 seconds for daemon to be read...")
45time.sleep(5)
46
47subprocess.run('python3 -m unittest discover -s units -v', shell=True)
48
49stop_mysql();
50
51subprocess.run(['pkill', '-f', 'valgrind'])
Note: See TracBrowser for help on using the repository browser.