From a68e48614e7b7a9df59cf5bef7beb4efa61bc079 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 11 Aug 2016 12:02:45 +0200
Subject: [PATCH] make the reference command part of parallel thread

---
 tests.aarbology.sh    | 35 +++++++++++++----------------------
 tests.astringology.sh | 11 +++++------
 2 files changed, 18 insertions(+), 28 deletions(-)

diff --git a/tests.aarbology.sh b/tests.aarbology.sh
index 2dd0de4d74..311614b723 100755
--- a/tests.aarbology.sh
+++ b/tests.aarbology.sh
@@ -81,15 +81,16 @@ function generateSubject {
 	./arand2 -t RT --nodes $RAND_SIZE_SUBJECT --terminals $(( $RANDOM % $RAND_ALPHABET + 1 )) --height $RAND_HEIGHT_SUBJECT --rank 2 2>/dev/null
 }
 
-# $1 = Occs number of occurrences expected
+# $1 = command to compute expected number of occurrences
 # $2 = command to test
 # $3 = subject
 # $4 = pattern
 function runTest2 {
+	OUT1=`bash -c "SUBJECT_FILE=\"$3\"; PATTERN_FILE=\"$4\"; $1"`
 	OUT2=`timeout $TESTCASE_TIMEOUT bash -c "SUBJECT_FILE=\"$3\"; PATTERN_FILE=\"$4\"; $2"`
 	RET=$?
 	if [ $RET == 0 ]; then # ok
-		OUT=`test $1 -eq $OUT2`
+		OUT=`test $OUT1 -eq $OUT2`
 	fi
 	RET2=$?
 
@@ -187,6 +188,8 @@ function runTestSubtree {
 	initResults
 	bgxgrp=""
 
+	Occs="./aarbology2 -a exactSubtreeMatch -s \"\$SUBJECT_FILE\" -p \"\$PATTERN_FILE\" | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/aarbology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.subtree.xml
@@ -197,8 +200,6 @@ function runTestSubtree {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -216,8 +217,6 @@ function runTestSubtree {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generateSubtree) > $PATTERN_FILE
 
-		Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
@@ -235,6 +234,8 @@ function runTestPattern {
 	initResults
 	bgxgrp=""
 
+	Occs="./aarbology2 -a exactPatternMatch -s \"\$SUBJECT_FILE\" -p \"\$PATTERN_FILE\" | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/aarbology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.pattern.xml
@@ -245,8 +246,6 @@ function runTestPattern {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -264,8 +263,6 @@ function runTestPattern {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generatePattern) > $PATTERN_FILE
 
-		Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
@@ -283,6 +280,8 @@ function runTestNonlinearPattern {
 	initResults
 	bgxgrp=""
 
+	Occs="./aarbology2 -a exactPatternMatch -s \"\$SUBJECT_FILE\" -p \"\$PATTERN_FILE\" | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/aarbology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.nonlinear.pattern.xml
@@ -293,8 +292,6 @@ function runTestNonlinearPattern {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -312,8 +309,6 @@ function runTestNonlinearPattern {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generateNonlinearPattern) > $PATTERN_FILE
 
-		Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
@@ -331,6 +326,8 @@ function runTestPatternEnds {
 	initResults
 	bgxgrp=""
 
+	Occs="./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <(./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/aarbology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.pattern.xml
@@ -341,8 +338,6 @@ function runTestPatternEnds {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE_COPY" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE_COPY" ) | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -360,8 +355,6 @@ function runTestPatternEnds {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generatePattern) > $PATTERN_FILE
 
-		Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE" ) | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
@@ -379,6 +372,8 @@ function runTestNonlinearPatternEnds {
 	initResults
 	bgxgrp=""
 
+	Occs="./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <(./acast2 -t PrefixRankedNonlinearPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/aarbology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.nonlinear.pattern.xml
@@ -389,8 +384,6 @@ function runTestNonlinearPatternEnds {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE_COPY" ) -p <(./acast2 -t PrefixRankedNonlinearPattern -i "$PATTERN_FILE_COPY" ) | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -408,8 +401,6 @@ function runTestNonlinearPatternEnds {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generateNonlinearPatternSingle) > $PATTERN_FILE
 
-		Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE" ) -p <(./acast2 -t PrefixRankedNonlinearPattern -i "$PATTERN_FILE" ) | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
diff --git a/tests.astringology.sh b/tests.astringology.sh
index e4bef59bc5..eefe7b4c11 100755
--- a/tests.astringology.sh
+++ b/tests.astringology.sh
@@ -67,15 +67,16 @@ function generateSubject {
 	./arand2 -t ST --length $RAND_SIZE_SUBJECT --terminals $(( $RANDOM % $RAND_ALPHABET + 1 )) 2>/dev/null | ./anormalize2 -a string
 }
 
-# $1 = Occs number of occurrences expected
+# $1 = command to compute expected number of occurrences
 # $2 = command to test
 # $3 = subject
 # $4 = pattern
 function runTest2 {
+	OUT1=`bash -c "SUBJECT_FILE=\"$3\"; PATTERN_FILE=\"$4\"; $1"`
 	OUT2=`timeout $TESTCASE_TIMEOUT bash -c "SUBJECT_FILE=\"$3\"; PATTERN_FILE=\"$4\"; $2"`
 	RET=$?
 	if [ $RET == 0 ]; then # ok
-		OUT=`test $1 -eq $OUT2`
+		OUT=`test $OUT1 -eq $OUT2`
 	fi
 	RET2=$?
 
@@ -173,6 +174,8 @@ function runTest {
 	initResults
 	bgxgrp=""
 
+	Occs="./astringology2 -a exactFactorMatch -s \"\$SUBJECT_FILE\" -p \"\$PATTERN_FILE\" | ./astat2 -p size"
+
 	# predefined tests first
 	for SUBJECT_FILE in `ls $TESTS_DIR/astringology.test*.subject.xml`; do
 		PATTERN_FILE=${SUBJECT_FILE%.subject.xml}.pattern.xml
@@ -183,8 +186,6 @@ function runTest {
 			cat $SUBJECT_FILE > $SUBJECT_FILE_COPY
 			cat $PATTERN_FILE > $PATTERN_FILE_COPY
 
-			Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size`
-
 			bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY"
 		fi
 	done
@@ -202,8 +203,6 @@ function runTest {
 		cat <(generateSubject) > $SUBJECT_FILE
 		cat <(generatePattern) > $PATTERN_FILE
 
-		Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size`
-
 		bgxlimit ${JOBS} runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE"
 	done
 
-- 
GitLab