Fix: tests: print real values in a fixed format
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 15 Mar 2023 19:44:02 +0000 (15:44 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Thu, 16 Mar 2023 20:23:43 +0000 (16:23 -0400)
The cli_params_to_string.to_string function converts float values
(bt2._RealValueConst) to string using the str function.  The format of
that seems to differ across platform.  On a 32-bit powerpcspe platform,
we see this failure in the cli/params/test_params test:

  -{a=10500000.0, b=10500000.0, c=1.05e-05, d=1.05e-05}
  +{a=10500000.0, b=10500000.0, c=1.0499999999999999e-05, d=1.0499999999999999e-05}

Fix that by doing an explicit string conversion for _RealValueConst objects,
with a constant 7 decimal places after the decimal point.  The 7 is chosen so
that the numbers in tests in cli/params/test_params are not truncated.

Change-Id: Ie4fcb8eb422c3d44eeec1201169dc8a995536d4a
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/9651
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
tests/cli/params/test_params
tests/utils/python/cli_params_to_string.py

index c207532a50e888f2a908dbdf9f777f3c60e35f6e..22ef54010e543a2f0dd0d7f8b04089508d3b061a 100755 (executable)
@@ -50,9 +50,9 @@ expect_success 'unsigned integer' 'a=+0b110, b=+022, c=+22, d=+0x22' \
 expect_success 'string' 'a="avril lavigne", b=patata, c="This\"is\\escaped"' \
        '{a=avril lavigne, b=patata, c=This"is\escaped}'
 expect_success 'float' 'a=1.234, b=17., c=.28, d=-18.28' \
-       '{a=1.234, b=17.0, c=0.28, d=-18.28}'
+       '{a=1.2340000, b=17.0000000, c=0.2800000, d=-18.2800000}'
 expect_success 'float scientific notation' 'a=10.5e6, b=10.5E6, c=10.5e-6, d=10.5E-6' \
-       '{a=10500000.0, b=10500000.0, c=1.05e-05, d=1.05e-05}'
+       '{a=10500000.0000000, b=10500000.0000000, c=0.0000105, d=0.0000105}'
 expect_success 'array' 'a=[1, [["hi",]]]' \
        '{a=[1, [[hi]]]}'
 expect_success 'map' 'a=4,a={},b={salut="la gang",comment="ca va",oh={x=2}}' \
index 90d61ffdc5e75dde47a63de4fb711324df40ae02..4ff24987a4e672953e885430fe0e0c2c53bdfe4d 100644 (file)
@@ -19,12 +19,13 @@ def to_string(p):
         )
     elif type(p) is bt2._UnsignedIntegerValueConst:
         s = str(p) + "u"
+    elif type(p) is bt2._RealValueConst:
+        s = "{:.7f}".format(float(p))
     elif (
         type(p)
         in (
             bt2._StringValueConst,
             bt2._SignedIntegerValueConst,
-            bt2._RealValueConst,
             bt2._BoolValueConst,
         )
         or p is None
This page took 0.025884 seconds and 4 git commands to generate.