diff --git a/.github/workflows/componentTests.yml b/.github/workflows/componentTests.yml
index 8b51b8d..a1b5dc5 100644
--- a/.github/workflows/componentTests.yml
+++ b/.github/workflows/componentTests.yml
@@ -49,8 +49,9 @@
           ${{ runner.os }}-maven-test-
 
     - name: Component Tests
-      run: mvn test -D maven.test.skip=false -Dtest=org.apache.sysds.test.component.** 
+      run: mvn -ntp test -D maven.test.skip=false -D automatedtestbase.outputbuffering=true -D test=org.apache.sysds.test.component.** | grep -v "already exists in destination."
     
     - name: User Tests
-      run: mvn test -D maven.test.skip=false -Dtest=org.apache.sysds.test.usertest.** 
+      run: mvn -ntp test -D maven.test.skip=false -D automatedtestbase.outputbuffering=true -D test=org.apache.sysds.test.usertest.** | grep -v "already exists in destination."
+
 
diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
index abd53ee..f591f8a 100644
--- a/.github/workflows/documentation.yml
+++ b/.github/workflows/documentation.yml
@@ -45,7 +45,7 @@
           ${{ runner.os }}-maven-
   
     - name: Make Documentation SystemDS Java
-      run: mvn -P distribution package
+      run: mvn -ntp -P distribution package
 
   documentation2:
     runs-on: ubuntu-latest
diff --git a/.github/workflows/federatedPython.yml b/.github/workflows/federatedPython.yml
index 643e900..2c4dcdb 100644
--- a/.github/workflows/federatedPython.yml
+++ b/.github/workflows/federatedPython.yml
@@ -57,7 +57,7 @@
           ${{ runner.os }}-maven-
   
     - name: Maven clean & package
-      run: mvn clean package -P distribution
+      run: mvn -ntp clean package -P distribution
 
     - name: Setup Python
       uses: actions/setup-python@v1
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index 59edfa0..2f40c6a 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -67,7 +67,7 @@
         key: ${{ runner.os }}-${{ hashFiles('.github/workflows/python.yml') }}
 
     - name: Maven clean & package
-      run: mvn clean package -P distribution
+      run: mvn -ntp clean package -P distribution
 
     - name: Setup Python
       uses: actions/setup-python@v1
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index fc511d1..cc98f97 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -26,21 +26,13 @@
 
 log="/tmp/sysdstest.log"
 
-echo "Starting Tests"
-
-mvn test -D maven.test.skip=false -Dtest=$1 2>&1 > $log
+mvn -ntp test -D maven.test.skip=false -D automatedtestbase.outputbuffering=true -D test=$1 | grep -v "already exists in destination." | tee $log
 
 grep_args="SUCCESS"
 grepvals="$( tail -n 100 $log | grep $grep_args)"
 
 if [[ $grepvals == *"SUCCESS"* ]]; then
-	echo "--------------------- last 100 lines from test ------------------------"
-	tail -n 100 $log
-	echo "------------------ last 100 lines from test end -----------------------"
-	sleep 3
 	exit 0
 else
-	echo "\n $(cat $log)"
-	sleep 3
 	exit 1
 fi
diff --git a/pom.xml b/pom.xml
index 5df2fe6..ace1cde 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,6 +53,7 @@
 		<!-->Testing settings<!-->
 		<maven.test.skip>true</maven.test.skip>
 		<jacoco.skip>true</jacoco.skip>
+		<automatedtestbase.outputbuffering>false</automatedtestbase.outputbuffering>
 		<argLine>-Xms4g -Xmx4g -Xmn400m</argLine>
 	</properties>
 
@@ -367,6 +368,23 @@
 					<skip>true</skip>
 				</configuration>
 			</plugin>
+
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+            	<artifactId>properties-maven-plugin</artifactId>
+            	<version>1.0.0</version>
+            	<executions>
+            	    <execution>
+            	        <phase>generate-resources</phase>
+            	        <goals>
+            	            <goal>write-project-properties</goal>
+            	        </goals>
+            	        <configuration>
+            	            <outputFile>${project.build.testOutputDirectory}/my.properties</outputFile>
+            	        </configuration>
+            	    </execution>
+            	</executions>
+			</plugin>
 		</plugins>
 	</build>
 
diff --git a/src/test/java/org/apache/sysds/test/AutomatedTestBase.java b/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
index 4e45584..70ea919 100644
--- a/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
+++ b/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
@@ -32,6 +32,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
@@ -196,8 +197,20 @@
 
 	private boolean isOutAndExpectedDeletionDisabled = false;
 
-	private boolean outputBuffering = true;
+	private static boolean outputBuffering = false;
 	
+	static {
+		java.io.InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("my.properties");
+		java.util.Properties properties = new Properties();
+		try {
+			properties.load(inputStream);
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
+		outputBuffering = Boolean.parseBoolean(properties.getProperty("automatedtestbase.outputbuffering"));
+	}
+
 	// Timestamp before test start.
 	private long lTimeBeforeTest;
 
@@ -1667,10 +1680,6 @@
 		return isOutAndExpectedDeletionDisabled;
 	}
 
-	public void setOutputBuffering(boolean flag) {
-		outputBuffering = flag;
-	}
-
 	/**
 	 * Call this method from a subclass's setUp() method.
 	 * 
diff --git a/src/test/java/org/apache/sysds/test/applications/GLMTest.java b/src/test/java/org/apache/sysds/test/applications/GLMTest.java
index ad2f6c4..0084b6f 100644
--- a/src/test/java/org/apache/sysds/test/applications/GLMTest.java
+++ b/src/test/java/org/apache/sysds/test/applications/GLMTest.java
@@ -264,7 +264,7 @@
 		
 		int expectedNumberOfJobs = -1; // 31;
 
-		setOutputBuffering(false);
+		
 		runTest(true, EXCEPTION_NOT_EXPECTED, null, expectedNumberOfJobs);
 
 		double max_abs_beta = 0.0;
diff --git a/src/test/java/org/apache/sysds/test/functions/append/AppendChainTest.java b/src/test/java/org/apache/sysds/test/functions/append/AppendChainTest.java
index b85de58..dcce9c2 100644
--- a/src/test/java/org/apache/sysds/test/functions/append/AppendChainTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/append/AppendChainTest.java
@@ -137,7 +137,7 @@
 	
 			int expectedCompiled = platform==ExecMode.SINGLE_NODE ?
 				0 : 8; //3x(rblk+chkpt), append, write
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, expectedCompiled);
 			runRScript(true);
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/append/AppendMatrixTest.java b/src/test/java/org/apache/sysds/test/functions/append/AppendMatrixTest.java
index 9710262..5067ce0 100644
--- a/src/test/java/org/apache/sysds/test/functions/append/AppendMatrixTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/append/AppendMatrixTest.java
@@ -179,7 +179,7 @@
 			
 			int expectedCompiled = platform==ExecMode.SINGLE_NODE ?
 				0 : 6; //2x(rblk+chkpt), append, write
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, expectedCompiled);
 			runRScript(true);
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/append/AppendVectorTest.java b/src/test/java/org/apache/sysds/test/functions/append/AppendVectorTest.java
index 014b73f..acd7266 100644
--- a/src/test/java/org/apache/sysds/test/functions/append/AppendVectorTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/append/AppendVectorTest.java
@@ -107,7 +107,7 @@
 			
 			boolean exceptionExpected = false;
 			int numExpectedJobs = (platform == ExecMode.SINGLE_NODE) ? 0 : 6;
-			setOutputBuffering(false);
+			
 			runTest(true, exceptionExpected, null, numExpectedJobs);
 			Assert.assertEquals("Wrong number of executed Spark jobs.",
 				numExpectedJobs, Statistics.getNoOfExecutedSPInst());
diff --git a/src/test/java/org/apache/sysds/test/functions/append/RBindCBindMatrixTest.java b/src/test/java/org/apache/sysds/test/functions/append/RBindCBindMatrixTest.java
index de5bd68..3b8816b 100644
--- a/src/test/java/org/apache/sysds/test/functions/append/RBindCBindMatrixTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/append/RBindCBindMatrixTest.java
@@ -132,7 +132,7 @@
 			double[][] B= getRandomMatrix(rows2, cols, min, max, sparsity, 923);
 			writeInputMatrixWithMTD("B", B, true);
 
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1);
 			runRScript(true);
 	
diff --git a/src/test/java/org/apache/sysds/test/functions/append/StringAppendTest.java b/src/test/java/org/apache/sysds/test/functions/append/StringAppendTest.java
index ae2a602..52fc4ed 100644
--- a/src/test/java/org/apache/sysds/test/functions/append/StringAppendTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/append/StringAppendTest.java
@@ -105,7 +105,7 @@
 			programArgs = new String[]{
 				"-args", Integer.toString(iters), output("C") };
 			
-			setOutputBuffering(false);
+			
 			runTest(exceptionExpected ? DMLRuntimeException.class : null);
 		}
 		catch(Exception ex) {
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/frame/FrameMapTest.java b/src/test/java/org/apache/sysds/test/functions/binary/frame/FrameMapTest.java
index c640659..602be07 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/frame/FrameMapTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/frame/FrameMapTest.java
@@ -133,7 +133,7 @@
 				writeInputFrameWithMTD("A", A, true, schemaStrings1, FileFormat.CSV);
 			}
 
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1);
 
 			FrameBlock outputFrame = readDMLFrameFromHDFS("O", FileFormat.CSV);
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullDistributedMatrixMultiplicationTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullDistributedMatrixMultiplicationTest.java
index c2efbbc..8d1692d 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullDistributedMatrixMultiplicationTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullDistributedMatrixMultiplicationTest.java
@@ -192,7 +192,7 @@
 			double[][] B = getRandomMatrix(rowsB, colsB, 0, 1, sparsityB, 9873); 
 			writeInputMatrixWithMTD("B", B, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullIntegerDivisionTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullIntegerDivisionTest.java
index 2c57e75..cbf83f7 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullIntegerDivisionTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullIntegerDivisionTest.java
@@ -265,7 +265,7 @@
 			boolean exceptionExpected = false;
 			runTest(true, exceptionExpected, null, -1); 
 
-			setOutputBuffering(false);
+			
 			runRScript(true); 
 		
 			//compare matrices 
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalMatrixTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalMatrixTest.java
index 8ed852c..76c469d 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalMatrixTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalMatrixTest.java
@@ -421,7 +421,7 @@
 			writeInputMatrixWithMTD("B", B, true);
 
 			//run tests
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1);
 			runRScript(true);
 
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarLeftTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarLeftTest.java
index 53ca27a..70a65f2 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarLeftTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarLeftTest.java
@@ -271,7 +271,7 @@
 			writeInputMatrixWithMTD("A", A, true);
 
 			//run tests
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1);
 			runRScript(true);
 
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarRightTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarRightTest.java
index b2fb7c5..dc85f26 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarRightTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullLogicalScalarRightTest.java
@@ -269,7 +269,7 @@
 			writeInputMatrixWithMTD("A", A, true);
 
 			//run tests
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1);
 			runRScript(true);
 
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTest.java
index 997e43d..edf673e 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTest.java
@@ -307,7 +307,7 @@
 			double[][] B = getRandomMatrix(rowsB, colsB, 0, 1, sparsityB, 3); 
 			writeInputMatrix("B", B, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
@@ -363,7 +363,7 @@
 			double[][] B = getRandomMatrix(rows2, cols2, 0, 1, sparsity1, 3); 
 			writeInputMatrix("B", B, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelf2Test.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelf2Test.java
index 7bb2991..0134b34 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelf2Test.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelf2Test.java
@@ -162,7 +162,7 @@
 			writeInputMatrix("A", A, true);
 	
 			//run dml and R scripts
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelfTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelfTest.java
index b1e2358..bfc1142 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelfTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationTransposeSelfTest.java
@@ -177,7 +177,7 @@
 			double[][] A = getRandomMatrix(rows, cols, 0, 1, sparsity, 7); 
 			writeInputMatrix("A", A, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
@@ -248,7 +248,7 @@
 			double[][] A = getRandomMatrix(rows, cols, 0, 1, sparsity, 7); 
 			writeInputMatrix("A", A, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationUltraSparseTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationUltraSparseTest.java
index c6e6934..ea3d7e7 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationUltraSparseTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMatrixMultiplicationUltraSparseTest.java
@@ -172,7 +172,7 @@
 			double[][] B = getRandomMatrix(rowsB, colsB, 0, 1, sparsityRight, 3); 
 			writeInputMatrix("B", B, true);
 	
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMinMaxComparisonTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMinMaxComparisonTest.java
index a9adc7a..ee8563c 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMinMaxComparisonTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullMinMaxComparisonTest.java
@@ -258,7 +258,7 @@
 			HDFSTool.writeMetaDataFile(input("B.mtd"), ValueType.FP64, mc2, FileFormat.TEXT);
 			
 			//run test
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullPowerTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullPowerTest.java
index dbce924..b0ee6bc 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullPowerTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/FullPowerTest.java
@@ -193,7 +193,7 @@
 				double[][] B = getRandomMatrix(1, 1, min, max, 1.0, 3);
 				writeScalarInputMatrixWithMTD( "B", B, true );
 			}
-			setOutputBuffering(false);
+			
 			runTest(true, false, null, -1); 
 			runRScript(true); 
 		
diff --git a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/MatrixMultShortLhsTest.java b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/MatrixMultShortLhsTest.java
index 38c7645..bb6f197 100644
--- a/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/MatrixMultShortLhsTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/binary/matrix_full_other/MatrixMultShortLhsTest.java
@@ -91,7 +91,7 @@
 		writeInputMatrixWithMTD("B", B, true);
 
 		//run tests
-		setOutputBuffering(false);
+		
 		runTest(true, false, null, -1); 
 		runRScript(true); 
 		
diff --git a/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinNaLocfTest.java b/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinNaLocfTest.java
index 8f5b1e1..71968eb 100644
--- a/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinNaLocfTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinNaLocfTest.java
@@ -88,7 +88,7 @@
 	private void runLocfTest(boolean lineage, String option, LopProperties.ExecType instType) {
 		Types.ExecMode platformOld = setExecMode(instType);
 		try {
-			setOutputBuffering(false);
+			
 			loadTestConfiguration(getTestConfiguration(TEST_NAME));
 			String HOME = SCRIPT_DIR + TEST_DIR;
 			fullDMLScriptName = HOME + TEST_NAME + ".dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinSliceFinderTest.java b/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinSliceFinderTest.java
index 53a3499..f03caa0 100644
--- a/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinSliceFinderTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/builtin/BuiltinSliceFinderTest.java
@@ -101,7 +101,7 @@
 		
 		try {
 			loadTestConfiguration(getTestConfiguration(TEST_NAME));
-			//setOutputBuffering(false);
+			//
 			fullDMLScriptName = HOME + dml_test_name + ".dml";
 			programArgs = new String[]{"-args", data,
 				String.valueOf(K),String.valueOf(!dp).toUpperCase(),
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedBivarTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedBivarTest.java
index 3c9439d..b810d1f 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedBivarTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedBivarTest.java
@@ -123,7 +123,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedGLMTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedGLMTest.java
index 8fbcfa7..2b9d287 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedGLMTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedGLMTest.java
@@ -99,7 +99,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		// setOutputBuffering(false);
+		// 
 		
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedKmeansTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedKmeansTest.java
index c763541..eb70a4b 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedKmeansTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedKmeansTest.java
@@ -106,7 +106,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 		
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedL2SVMTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedL2SVMTest.java
index c102ef9..e24935d 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedL2SVMTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedL2SVMTest.java
@@ -102,7 +102,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 		
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedLogRegTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedLogRegTest.java
index 9f4aaea..0550ec9 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedLogRegTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedLogRegTest.java
@@ -98,7 +98,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedPCATest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedPCATest.java
index b86c4da..33179b7 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedPCATest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedPCATest.java
@@ -108,7 +108,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 		
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedUnivarTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedUnivarTest.java
index b1fb692..f24aa6c 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedUnivarTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedUnivarTest.java
@@ -108,7 +108,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedYL2SVMTest.java b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedYL2SVMTest.java
index 24f04f0..0657e50 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedYL2SVMTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/algorithms/FederatedYL2SVMTest.java
@@ -109,7 +109,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedConstructionTest.java b/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedConstructionTest.java
index 9013f93..8a3b4d1 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedConstructionTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedConstructionTest.java
@@ -124,7 +124,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// we need the reference file to not be written to hdfs, so we get the correct format
 		rtplatform = Types.ExecMode.SINGLE_NODE;
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedStatisticsTest.java b/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedStatisticsTest.java
index d412743..8350147 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedStatisticsTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/primitives/FederatedStatisticsTest.java
@@ -114,7 +114,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		
 
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/lineage/LineageReuseAlg.java b/src/test/java/org/apache/sysds/test/functions/lineage/LineageReuseAlg.java
index 31c12bf..90b7935 100644
--- a/src/test/java/org/apache/sysds/test/functions/lineage/LineageReuseAlg.java
+++ b/src/test/java/org/apache/sysds/test/functions/lineage/LineageReuseAlg.java
@@ -133,7 +133,7 @@
 			programArgs = proArgs.toArray(new String[proArgs.size()]);
 			Lineage.resetInternalState();
 			Lineage.setLinReuseFull();
-			setOutputBuffering(false);
+			
 			runTest(true, EXCEPTION_NOT_EXPECTED, null, -1);
 			HashMap<MatrixValue.CellIndex, Double> X_reused = readDMLMatrixFromHDFS("X");
 			
diff --git a/src/test/java/org/apache/sysds/test/functions/privacy/FederatedL2SVMTest.java b/src/test/java/org/apache/sysds/test/functions/privacy/FederatedL2SVMTest.java
index 8aa4297..8991b13 100644
--- a/src/test/java/org/apache/sysds/test/functions/privacy/FederatedL2SVMTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/privacy/FederatedL2SVMTest.java
@@ -399,7 +399,7 @@
 				"-nvargs", "in_X1=" + TestUtils.federatedAddress(port1, input("X1")),
 				"in_X2=" + TestUtils.federatedAddress(port2, input("X2")), "rows=" + rows, "cols=" + cols,
 				"in_Y=" + input("Y"), "out=" + output("Z")};
-			setOutputBuffering(false);
+			
 			runTest(true, exception2, expectedException2, -1);
 
 			if ( !(exception1 || exception2) ) {
diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties
index 92e65f9..9195367 100644
--- a/src/test/resources/log4j.properties
+++ b/src/test/resources/log4j.properties
@@ -26,6 +26,7 @@
 log4j.logger.org.apache.sysds.test.AutomatedTestBase=ERROR
 log4j.logger.org.apache.sysds=WARN
 log4j.logger.org.apache.sysds.runtime.compress.AbstractCompressedMatrixBlock=ERROR
+log4j.logger.org.apache.sysds.parser.DataExpression=ERROR
 log4j.logger.org.apache.spark=OFF
 log4j.logger.org.apache.hadoop=OFF
 
