Skip to content
Snippets Groups Projects
Commit 53bac0c6 authored by maitp2's avatar maitp2
Browse files

Merge branch 'test_grep' into 'main'

Add testcases

See merge request trangtd2/cs425_mp1!8
parents c6d191c9 78cb2ea3
No related branches found
No related tags found
No related merge requests found
Showing
with 145 additions and 47 deletions
...@@ -3,3 +3,5 @@ ...@@ -3,3 +3,5 @@
*.DS_Store *.DS_Store
files/generated_log/* files/generated_log/*
out/artifacts/grep_server_jar/* out/artifacts/grep_server_jar/*
out/artifacts/grep_client_jar/*
files/demo_data/*
...@@ -9,6 +9,5 @@ for ((i=1; i<=upperlim; i++)); do ...@@ -9,6 +9,5 @@ for ((i=1; i<=upperlim; i++)); do
else else
ssh maitp2@fa22-cs425-52$i.cs.illinois.edu 'java -jar /home/maitp2/grep_server.jar -p 5000' ssh maitp2@fa22-cs425-52$i.cs.illinois.edu 'java -jar /home/maitp2/grep_server.jar -p 5000'
fi fi
sleep 3s
logout logout
done done
\ No newline at end of file
...@@ -5,8 +5,8 @@ upperlim=10 ...@@ -5,8 +5,8 @@ upperlim=10
for ((i=1; i<=upperlim; i++)); do for ((i=1; i<=upperlim; i++)); do
echo "Sending jar file to VM $i" echo "Sending jar file to VM $i"
if [ "$i" -lt 10 ]; then if [ "$i" -lt 10 ]; then
scp /home/maipham/uiuc/cs425/mp1/grep/out/artifacts/grep_server_jar/grep_server.jar maitp2@fa22-cs425-520$i.cs.illinois.edu:/home/maitp2/ scp /home/maipham/uiuc/cs425/mp1/grep/out/artifacts/grep_client_jar/grep_client.jar maitp2@fa22-cs425-520$i.cs.illinois.edu:/home/maitp2/
else else
scp /home/maipham/uiuc/cs425/mp1/grep/out/artifacts/grep_server_jar/grep_server.jar maitp2@fa22-cs425-52$i.cs.illinois.edu:/home/maitp2/ scp /home/maipham/uiuc/cs425/mp1/grep/out/artifacts/grep_client_jar/grep_client.jar maitp2@fa22-cs425-52$i.cs.illinois.edu:/home/maitp2/
fi fi
done done
\ No newline at end of file
#!/bin/bash
# This bash will send Client and server jars files to all VMs
upperlim=10
for ((i=1; i<=upperlim; i++)); do
echo "Sending log file to VM $i"
if [ "$i" -lt 10 ]; then
# scp /home/maipham/uiuc/cs425/mp1/grep/files/demo_data/vm$i.log maitp2@fa22-cs425-520$i.cs.illinois.edu:/home/maitp2/
scp /home/maipham/uiuc/cs425/mp1/grep/files/config.txt maitp2@fa22-cs425-520$i.cs.illinois.edu:/home/maitp2/
else
# scp /home/maipham/uiuc/cs425/mp1/grep/files/demo_data/vm$i.log maitp2@fa22-cs425-52$i.cs.illinois.edu:/home/maitp2/
scp /home/maipham/uiuc/cs425/mp1/grep/files/config.txt maitp2@fa22-cs425-52$i.cs.illinois.edu:/home/maitp2/
fi
done
\ No newline at end of file
fa22-cs425-5201.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5201.cs.illinois.edu 5000 /home/maitp2/vm1.log
fa22-cs425-5202.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5202.cs.illinois.edu 5000 /home/maitp2/vm2.log
fa22-cs425-5203.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5203.cs.illinois.edu 5000 /home/maitp2/vm3.log
fa22-cs425-5204.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5204.cs.illinois.edu 5000 /home/maitp2/vm4.log
fa22-cs425-5205.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5205.cs.illinois.edu 5000 /home/maitp2/vm5.log
fa22-cs425-5206.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5206.cs.illinois.edu 5000 /home/maitp2/vm6.log
fa22-cs425-5207.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5207.cs.illinois.edu 5000 /home/maitp2/vm7.log
fa22-cs425-5208.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5208.cs.illinois.edu 5000 /home/maitp2/vm8.log
fa22-cs425-5209.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5209.cs.illinois.edu 5000 /home/maitp2/vm9.log
fa22-cs425-5210.cs.illinois.edu 5000 /home/maitp2/generated_log.log fa22-cs425-5210.cs.illinois.edu 5000 /home/maitp2/vm10.log
\ No newline at end of file \ No newline at end of file
localhost 5001 /home/maipham/uiuc/cs425/mp1/grep/files/generated_log/test1.log localhost 5001 /home/maipham/uiuc/cs425/mp1/grep/files/demo_data/vm1.log
\ No newline at end of file \ No newline at end of file
{\rtf1\ansi\ansicpg1252\cocoartf2638
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 Error: This is an error for multi test case 1\
}
\ No newline at end of file
{\rtf1\ansi\ansicpg1252\cocoartf2638
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 Error: This is a confirm for multi test case 2\
!}
\ No newline at end of file
vm1.log: 283553
vm2.log: 267938
vm3.log: 268804
vm4.log: 270917
vm5.log: 271205
vm6.log: 268894
vm7.log: 268084
vm8.log: 274522
vm9.log: 269822
vm10.log: 265524
Total number of matching lines: 2709263
\ No newline at end of file
vm1.log: 0
vm2.log: 0
vm3.log: 0
vm4.log: 0
vm5.log: 0
vm6.log: 0
vm7.log: 0
vm8.log: 0
vm9.log: 0
vm10.log: 0
Total number of matching lines: 0
\ No newline at end of file
vm1.log: 1
vm2.log: 0
vm3.log: 0
vm4.log: 0
vm5.log: 0
vm6.log: 0
vm7.log: 0
vm8.log: 0
vm9.log: 0
vm10.log: 0
Total number of matching lines: 1
\ No newline at end of file
vm1.log: 84965
vm2.log: 80130
vm3.log: 80591
vm4.log: 81191
vm5.log: 81284
vm6.log: 80448
vm7.log: 80768
vm8.log: 82096
vm9.log: 80626
vm10.log: 79214
Total number of matching lines: 811313
\ No newline at end of file
vm1.log: 32473
vm2.log: 21726
vm3.log: 23171
vm4.log: 24521
vm5.log: 25238
vm6.log: 22684
vm7.log: 22013
vm8.log: 27898
vm9.log: 23753
vm10.log: 19447
Total number of matching lines: 242924
\ No newline at end of file
vm1.log: 2
vm2.log: 1
vm3.log: 1
vm4.log: 2
vm5.log: 0
vm6.log: 0
vm7.log: 1
vm8.log: 1
vm9.log: 0
vm10.log: 0
Total number of matching lines: 8
\ No newline at end of file
No preview for this file type
No preview for this file type
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<properties> <properties>
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<jdk.version>1.8</jdk.version>
<junit.jupiter.version>5.8.2</junit.jupiter.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
...@@ -36,5 +40,26 @@ ...@@ -36,5 +40,26 @@
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build>
<finalName>running-unit-tests</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
</project> </project>
\ No newline at end of file
...@@ -29,10 +29,12 @@ public class Client { ...@@ -29,10 +29,12 @@ public class Client {
System.exit(1); System.exit(1);
} }
long start = System.currentTimeMillis();
/* Read config file */ /* Read config file */
String configFile = ns.getString("configFile"); String configFile = ns.getString("configFile");
String pattern = String.join(" ", ns.getList("command")); String pattern = String.join(" ", ns.getList("command"));
ClientHandler.start(configFile, pattern); ClientHandler.start(configFile, pattern);
long end = System.currentTimeMillis();
System.out.println("Elapsed Time: " + (end - start) + " ms" );
} }
} }
package cs425.mp1; package cs425.mp1;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
public class ClientHandler { public class ClientHandler {
public static String start(String confFile, String grepCommand) throws IOException {
private static final Logger logger = LoggerFactory.getLogger(ClientHandler.class);
public static ArrayList<ResultInfo> start(String confFile, String grepCommand) throws IOException {
/* Read server hosts, ports, and log files from config files */ /* Read server hosts, ports, and log files from config files */
FileReader file = new FileReader(confFile); FileReader file = new FileReader(confFile);
ArrayList<ServerConf> servers = new ArrayList<>(); ArrayList<ServerConf> servers = new ArrayList<>();
String line; String line;
BufferedReader reader = new BufferedReader(file); BufferedReader reader = new BufferedReader(file);
int totalLines = 0;
while (true) { while (true) {
line = reader.readLine(); line = reader.readLine();
if (line != null) { if (line != null) {
...@@ -31,24 +39,31 @@ public class ClientHandler { ...@@ -31,24 +39,31 @@ public class ClientHandler {
Creating threads based on number of servers Creating threads based on number of servers
*/ */
int n = servers.size(); int n = servers.size();
StringBuilder result = new StringBuilder(); ArrayList<GrepThread> threads = new ArrayList<>(n);
ArrayList<JobThread> threads = new ArrayList<>(n);
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
JobThread t = new JobThread(servers.get(i), grepCommand); GrepThread t = new GrepThread(servers.get(i), grepCommand);
threads.add(t); threads.add(t);
t.start(); t.start();
} }
/* End threads */ /* End threads */
for (JobThread t: threads) { ArrayList<ResultInfo> results = new ArrayList<>();
for (GrepThread t: threads) {
try { try {
t.join(); t.join();
result.append(t.getResult()).append("\n"); if (t.getResult() != null){
results.add(t.getResult());
totalLines += t.getResult().getMatches();
}
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
return result.toString(); System.out.println("Total lines: " + totalLines);
results.add(new ResultInfo("total", "total", totalLines));
return results;
} }
} }
package cs425.mp1;
public class Constant {
public static final String SUCCESS_CREATE_LOG = "SUCCESSFUL CREATE LOG";
public static final String ERROR_CREATE_LOG = "FAIL TO CREATE LOG FILE";
public static final String LOG_FILE_DOES_NOT_EXIST = "LOG FILE DOES NOT EXIST";
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment