diff --git a/MP1/test.py b/MP1/test.py index a8874c5..0501932 100644 --- a/MP1/test.py +++ b/MP1/test.py @@ -16,25 +16,300 @@ ALL_IPS = [ "172.22.156.6" ] +tests = ["TEST_ALL", "TEST_UNIQUE", "TEST_SOME", "TEST_MEDIUM"] +results = ["""Filename: machine.1.log +Matches: 1 +1:[1-0] [INFO] TEST_ALL + +Filename: machine.2.log +Matches: 1 +1:[2-0] [INFO] TEST_ALL + +Filename: machine.3.log +Matches: 1 +1:[3-0] [INFO] TEST_ALL + +Filename: machine.4.log +Matches: 1 +1:[4-0] [INFO] TEST_ALL + +Filename: machine.5.log +Matches: 1 +1:[5-0] [INFO] TEST_ALL + +Filename: machine.6.log +Matches: 1 +1:[6-0] [INFO] TEST_ALL + +Filename: machine.7.log +Matches: 1 +1:[7-0] [INFO] TEST_ALL + +Filename: machine.8.log +Matches: 1 +1:[8-0] [INFO] TEST_ALL + +Filename: machine.9.log +Matches: 1 +1:[9-0] [INFO] TEST_ALL + +Filename: machine.10.log +Matches: 1 +1:[10-0] [INFO] TEST_ALL + +=========================== SUMMARY =========================== +machine.1.test.log: 1 matches +machine.2.test.log: 1 matches +machine.3.test.log: 1 matches +machine.4.test.log: 1 matches +machine.5.test.log: 1 matches +machine.6.test.log: 1 matches +machine.7.test.log: 1 matches +machine.8.test.log: 1 matches +machine.9.test.log: 1 matches +machine.10.test.log: 1 matches +Total matches: 10 +===============================================================""", +""" +Filename: machine.2.log +Matches: 1 +2:[2-1] [DEBUG] TEST_UNIQUE + +Filename: machine.4.log +Matches: 1 +2:[4-1] [DEBUG] TEST_UNIQUE + +Filename: machine.6.log +Matches: 1 +2:[6-1] [DEBUG] TEST_UNIQUE + +Filename: machine.8.log +Matches: 1 +2:[8-1] [DEBUG] TEST_UNIQUE + +Filename: machine.10.log +Matches: 1 +2:[10-1] [DEBUG] TEST_UNIQUE + +=========================== SUMMARY =========================== +machine.1.test.log: 0 matches +machine.2.test.log: 1 matches +machine.3.test.log: 0 matches +machine.4.test.log: 1 matches +machine.5.test.log: 0 matches +machine.6.test.log: 1 matches +machine.7.test.log: 0 matches +machine.8.test.log: 1 matches +machine.9.test.log: 0 matches +machine.10.test.log: 1 matches +Total matches: 5 +=============================================================== +""", +""" +Filename: machine.1.log +Matches: 1 +3:[1-2] [ERROR] TEST_SOME + +Filename: machine.3.log +Matches: 1 +3:[3-2] [ERROR] TEST_SOME + +Filename: machine.5.log +Matches: 1 +3:[5-2] [ERROR] TEST_SOME + +Filename: machine.7.log +Matches: 1 +3:[7-2] [ERROR] TEST_SOME + +Filename: machine.9.log +Matches: 1 +3:[9-2] [ERROR] TEST_SOME + +=========================== SUMMARY =========================== +machine.1.test.log: 1 matches +machine.2.test.log: 0 matches +machine.3.test.log: 1 matches +machine.4.test.log: 0 matches +machine.5.test.log: 1 matches +machine.6.test.log: 0 matches +machine.7.test.log: 1 matches +machine.8.test.log: 0 matches +machine.9.test.log: 1 matches +machine.10.test.log: 0 matches +Total matches: 5 +=============================================================== +""", +""" +Filename: machine.1.log +Matches: 10 +4:[1-3] [INFO] TEST_MEDIUM +5:[1-4] [INFO] TEST_MEDIUM +6:[1-5] [INFO] TEST_MEDIUM +7:[1-6] [INFO] TEST_MEDIUM +8:[1-7] [INFO] TEST_MEDIUM +9:[1-8] [INFO] TEST_MEDIUM +10:[1-9] [INFO] TEST_MEDIUM +11:[1-10] [INFO] TEST_MEDIUM +12:[1-11] [INFO] TEST_MEDIUM +13:[1-12] [INFO] TEST_MEDIUM + +Filename: machine.2.log +Matches: 10 +4:[2-3] [INFO] TEST_MEDIUM +5:[2-4] [INFO] TEST_MEDIUM +6:[2-5] [INFO] TEST_MEDIUM +7:[2-6] [INFO] TEST_MEDIUM +8:[2-7] [INFO] TEST_MEDIUM +9:[2-8] [INFO] TEST_MEDIUM +10:[2-9] [INFO] TEST_MEDIUM +11:[2-10] [INFO] TEST_MEDIUM +12:[2-11] [INFO] TEST_MEDIUM +13:[2-12] [INFO] TEST_MEDIUM + +Filename: machine.3.log +Matches: 10 +4:[3-3] [INFO] TEST_MEDIUM +5:[3-4] [INFO] TEST_MEDIUM +6:[3-5] [INFO] TEST_MEDIUM +7:[3-6] [INFO] TEST_MEDIUM +8:[3-7] [INFO] TEST_MEDIUM +9:[3-8] [INFO] TEST_MEDIUM +10:[3-9] [INFO] TEST_MEDIUM +11:[3-10] [INFO] TEST_MEDIUM +12:[3-11] [INFO] TEST_MEDIUM +13:[3-12] [INFO] TEST_MEDIUM + +Filename: machine.4.log +Matches: 10 +4:[4-3] [INFO] TEST_MEDIUM +5:[4-4] [INFO] TEST_MEDIUM +6:[4-5] [INFO] TEST_MEDIUM +7:[4-6] [INFO] TEST_MEDIUM +8:[4-7] [INFO] TEST_MEDIUM +9:[4-8] [INFO] TEST_MEDIUM +10:[4-9] [INFO] TEST_MEDIUM +11:[4-10] [INFO] TEST_MEDIUM +12:[4-11] [INFO] TEST_MEDIUM +13:[4-12] [INFO] TEST_MEDIUM + +Filename: machine.5.log +Matches: 10 +4:[5-3] [INFO] TEST_MEDIUM +5:[5-4] [INFO] TEST_MEDIUM +6:[5-5] [INFO] TEST_MEDIUM +7:[5-6] [INFO] TEST_MEDIUM +8:[5-7] [INFO] TEST_MEDIUM +9:[5-8] [INFO] TEST_MEDIUM +10:[5-9] [INFO] TEST_MEDIUM +11:[5-10] [INFO] TEST_MEDIUM +12:[5-11] [INFO] TEST_MEDIUM +13:[5-12] [INFO] TEST_MEDIUM + +Filename: machine.6.log +Matches: 10 +4:[6-3] [INFO] TEST_MEDIUM +5:[6-4] [INFO] TEST_MEDIUM +6:[6-5] [INFO] TEST_MEDIUM +7:[6-6] [INFO] TEST_MEDIUM +8:[6-7] [INFO] TEST_MEDIUM +9:[6-8] [INFO] TEST_MEDIUM +10:[6-9] [INFO] TEST_MEDIUM +11:[6-10] [INFO] TEST_MEDIUM +12:[6-11] [INFO] TEST_MEDIUM +13:[6-12] [INFO] TEST_MEDIUM + +Filename: machine.7.log +Matches: 10 +4:[7-3] [INFO] TEST_MEDIUM +5:[7-4] [INFO] TEST_MEDIUM +6:[7-5] [INFO] TEST_MEDIUM +7:[7-6] [INFO] TEST_MEDIUM +8:[7-7] [INFO] TEST_MEDIUM +9:[7-8] [INFO] TEST_MEDIUM +10:[7-9] [INFO] TEST_MEDIUM +11:[7-10] [INFO] TEST_MEDIUM +12:[7-11] [INFO] TEST_MEDIUM +13:[7-12] [INFO] TEST_MEDIUM + +Filename: machine.8.log +Matches: 10 +4:[8-3] [INFO] TEST_MEDIUM +5:[8-4] [INFO] TEST_MEDIUM +6:[8-5] [INFO] TEST_MEDIUM +7:[8-6] [INFO] TEST_MEDIUM +8:[8-7] [INFO] TEST_MEDIUM +9:[8-8] [INFO] TEST_MEDIUM +10:[8-9] [INFO] TEST_MEDIUM +11:[8-10] [INFO] TEST_MEDIUM +12:[8-11] [INFO] TEST_MEDIUM +13:[8-12] [INFO] TEST_MEDIUM + +Filename: machine.9.log +Matches: 10 +4:[9-3] [INFO] TEST_MEDIUM +5:[9-4] [INFO] TEST_MEDIUM +6:[9-5] [INFO] TEST_MEDIUM +7:[9-6] [INFO] TEST_MEDIUM +8:[9-7] [INFO] TEST_MEDIUM +9:[9-8] [INFO] TEST_MEDIUM +10:[9-9] [INFO] TEST_MEDIUM +11:[9-10] [INFO] TEST_MEDIUM +12:[9-11] [INFO] TEST_MEDIUM +13:[9-12] [INFO] TEST_MEDIUM + +Filename: machine.10.log +Matches: 10 +4:[10-3] [INFO] TEST_MEDIUM +5:[10-4] [INFO] TEST_MEDIUM +6:[10-5] [INFO] TEST_MEDIUM +7:[10-6] [INFO] TEST_MEDIUM +8:[10-7] [INFO] TEST_MEDIUM +9:[10-8] [INFO] TEST_MEDIUM +10:[10-9] [INFO] TEST_MEDIUM +11:[10-10] [INFO] TEST_MEDIUM +12:[10-11] [INFO] TEST_MEDIUM +13:[10-12] [INFO] TEST_MEDIUM + +=========================== SUMMARY =========================== +machine.1.test.log: 10 matches +machine.2.test.log: 10 matches +machine.3.test.log: 10 matches +machine.4.test.log: 10 matches +machine.5.test.log: 10 matches +machine.6.test.log: 10 matches +machine.7.test.log: 10 matches +machine.8.test.log: 10 matches +machine.9.test.log: 10 matches +machine.10.test.log: 10 matches +Total matches: 100 +=============================================================== +"""] + + #generate log files on all the machines before running this test print("Generating log files on all machines...") for i, ip in enumerate(ALL_IPS): subprocess.run(["vpn", "ssh", f"asing271@{ip}", f"cd ~/fa26_cs425_.group-mp_.team-01/MP1 && python3 generate_log.py {i + 1} 100"]) #start the server on all the machines before running this test -# print("Starting server on all machines...") -# for i, ip in enumerate(ALL_IPS): -# print(f"Starting server on machine {i + 1} ({ip})...") -# subprocess.run([ -# "vpn", "ssh", f"asing271@{ip}", "cd ~/fa26_cs425_.group-mp_.team-01/MP1 && setsid -f python3 server.py > server.log 2>&1 < /dev/null"]) +print("Starting server on all machines...") +for i, ip in enumerate(ALL_IPS): + print(f"Starting server on machine {i + 1} ({ip})...") + subprocess.run([ + "vpn", "ssh", f"asing271@{ip}", "cd ~/fa26_cs425_.group-mp_.team-01/MP1 && setsid -f python3 server.py > server.log 2>&1 < /dev/null"]) #ssh into one machine at randome -# print("Running grep command on a random machine...") -# machine_num = random.randint(1, len(ALL_IPS)) -# result = subprocess.run(["vpn", "ssh", f"asing271@{ALL_IPS[machine_num - 1]}", f"cd ~/fa26_cs425_.group-mp_.team-01/MP1 && grepp 'ERROR' f'./machine.{machine_num}.test.log'"], capture_output=True, text=True) -# print(f"Machine {machine_num} grep result:\n{result.stdout}") +machine_num = random.randint(1, len(ALL_IPS)) +print(f"Running grep command on a {machine_num} random machine...") +for i in tests: + result = subprocess.run(["vpn", "ssh", f"asing271@{ALL_IPS[machine_num - 1]}", f"cd ~/fa26_cs425_.group-mp_.team-01/MP1 && grepp {i} -t"], capture_output=True, text=True) + if result.stdout.strip() == results[tests.index(i)].strip(): + print("PASS {i} test") + else: + print("FAIL {i} test") #delete log files on all the machines after running this test -# print("Deleting log files on all machines...") -# for i, ip in enumerate(ALL_IPS): -# subprocess.run(["vpn", "ssh", f"asing271@{ip}", "cd ~/fa26_cs425_.group-mp_.team-01/MP1 && rm -f ./machine.*.test.log"]) +print("Deleting log files on all machines...") +for i, ip in enumerate(ALL_IPS): + subprocess.run(["vpn", "ssh", f"asing271@{ip}", "cd ~/fa26_cs425_.group-mp_.team-01/MP1 && rm -f ./machine.*.test.log"])