You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2019/05/27 09:44:00 UTC

svn commit: r1860116 - in /jmeter/trunk/test/src/org/apache/jmeter: assertions/TestJSONPathAssertion.java config/TestRandomVariableConfig.java extractor/TestXPathExtractor.java

Author: vladimirsitnikov
Date: Mon May 27 09:43:59 2019
New Revision: 1860116

URL: http://svn.apache.org/viewvc?rev=1860116&view=rev
Log:
Enforce Locale.US for tests that verify numeric processing (e.g. 0.42)

Modified:
    jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java
    jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java
    jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java

Modified: jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java?rev=1860116&r1=1860115&r2=1860116&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java Mon May 27 09:43:59 2019
@@ -19,6 +19,8 @@ package org.apache.jmeter.assertions;
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.Locale;
+
 import org.apache.jmeter.samplers.SampleResult;
 import org.junit.Test;
 
@@ -367,19 +369,26 @@ public class TestJSONPathAssertion {
 
     @Test
     public void testGetResultFloat() {
-        SampleResult samplerResult = new SampleResult();
-
-        samplerResult.setResponseData("{\"myval\": [{\"test\":0.0000123456789}]}".getBytes());
-
-        JSONPathAssertion instance = new JSONPathAssertion();
-        instance.setJsonPath("$.myval[*].test");
-        instance.setJsonValidationBool(true);
-        instance.setIsRegex(false);
-        instance.setExpectedValue("0.0000123456789");
-
-        AssertionResult expResult = new AssertionResult("");
-        AssertionResult result = instance.getResult(samplerResult);
-        assertEquals(expResult.getName(), result.getName());
-        assertEquals(false, result.isFailure());
+        Locale prevLocale = Locale.getDefault();
+        try {
+            // 0.0000123456789 is locale-dependent
+            Locale.setDefault(Locale.US);
+            SampleResult samplerResult = new SampleResult();
+
+            samplerResult.setResponseData("{\"myval\": [{\"test\":0.0000123456789}]}".getBytes());
+
+            JSONPathAssertion instance = new JSONPathAssertion();
+            instance.setJsonPath("$.myval[*].test");
+            instance.setJsonValidationBool(true);
+            instance.setIsRegex(false);
+            instance.setExpectedValue("0.0000123456789");
+
+            AssertionResult expResult = new AssertionResult("");
+            AssertionResult result = instance.getResult(samplerResult);
+            assertEquals(expResult.getName(), result.getName());
+            assertEquals(false, result.isFailure());
+        } finally {
+            Locale.setDefault(prevLocale);
+        }
     }
 }

Modified: jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java?rev=1860116&r1=1860115&r2=1860116&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java Mon May 27 09:43:59 2019
@@ -22,6 +22,8 @@
      
 package org.apache.jmeter.config;
 
+import java.util.Locale;
+
 import org.apache.jmeter.junit.JMeterTestCase;
 import org.apache.jmeter.threads.JMeterContext;
 import org.apache.jmeter.threads.JMeterContextService;
@@ -65,14 +67,20 @@ public class TestRandomVariableConfig ex
 
     @Test
     public void testRandomWithFormat() throws Exception {
-        config.setMinimumValue(MAX_VALUE);
-        config.setMaximumValue(MAX_VALUE);
-        config.setOutputFormat("000.00");
-        config.iterationStart(null);
-        String value = threadVars.get(RANDOM_VAR_NAME);
-        Assert.assertNotNull(threadVars.get(RANDOM_VAR_NAME));
-        Assert.assertEquals("010.00", value);
-
+        // 010.00 requires explicit locale
+        Locale prevLocale = Locale.getDefault();
+        try {
+            Locale.setDefault(Locale.US);
+            config.setMinimumValue(MAX_VALUE);
+            config.setMaximumValue(MAX_VALUE);
+            config.setOutputFormat("000.00");
+            config.iterationStart(null);
+            String value = threadVars.get(RANDOM_VAR_NAME);
+            Assert.assertNotNull(threadVars.get(RANDOM_VAR_NAME));
+            Assert.assertEquals("010.00", value);
+        } finally {
+            Locale.setDefault(prevLocale);
+        }
     }
 
     @Test

Modified: jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java?rev=1860116&r1=1860115&r2=1860116&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java Mon May 27 09:43:59 2019
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNull;
 
 import java.io.UnsupportedEncodingException;
+import java.util.Locale;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.samplers.SampleResult;
@@ -273,14 +274,21 @@ public class TestXPathExtractor {
 
         @Test
         public void testInvalidXpath() throws Exception {
-            extractor.setXPathQuery("<");
-            extractor.process();
-            assertEquals(1, result.getAssertionResults().length);
-            assertEquals(extractor.getName(), result.getAssertionResults()[0].getName());
-            org.junit.Assert.assertTrue(result.getAssertionResults()[0].
-                    getFailureMessage().contains("A location path was expected, but the following token was encountered"));
-            assertEquals("Default", vars.get(VAL_NAME));
-            assertEquals("0", vars.get(VAL_NAME_NR));
+            Locale prevLocale = Locale.getDefault();
+            try {
+                // The test fails in other locales for some reason
+                Locale.setDefault(Locale.US);
+                extractor.setXPathQuery("<");
+                extractor.process();
+                assertEquals(1, result.getAssertionResults().length);
+                assertEquals(extractor.getName(), result.getAssertionResults()[0].getName());
+                Assert.assertTrue(result.getAssertionResults()[0].
+                        getFailureMessage().contains("A location path was expected, but the following token was encountered"));
+                assertEquals("Default", vars.get(VAL_NAME));
+                assertEquals("0", vars.get(VAL_NAME_NR));
+            } finally {
+                Locale.setDefault(prevLocale);
+            }
         }
 
         @Test