From 9cdc3343ff2f88e44bbc2f43feb2c0f05b3e03ad Mon Sep 17 00:00:00 2001 From: dan sinclair Date: Thu, 23 Feb 2023 19:49:07 +0000 Subject: [PATCH] Add test setting the locale. This CL adds a test which sets the locale to one which uses `1,00` instead of `1.00`. This ensures the float emission will get the right format. Bug: tint:1686 Change-Id: Ib87235c7beac351b7dcbf37534df07135da377e5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120881 Reviewed-by: Ben Clayton Kokoro: Kokoro Commit-Queue: Dan Sinclair --- src/tint/writer/float_to_string_test.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/tint/writer/float_to_string_test.cc b/src/tint/writer/float_to_string_test.cc index 901334e4e7..643f070de0 100644 --- a/src/tint/writer/float_to_string_test.cc +++ b/src/tint/writer/float_to_string_test.cc @@ -17,6 +17,7 @@ #include #include #include +#include #include "gtest/gtest.h" #include "src/tint/utils/bitcast.h" @@ -79,6 +80,16 @@ TEST(FloatToStringTest, Precision) { EXPECT_EQ(FloatToString(1e-20f), "9.99999968e-21"); } +#if !defined(__linux__) +TEST(FloatToStringTest, Locale) { + std::locale::global(std::locale("sv_SE.UTF-8")); + + EXPECT_EQ(FloatToString(1e-9f), "0.000000001"); + + std::locale::global(std::locale::classic()); +} +#endif // !defined(__linux__) + //////////////////////////////////////////////////////////////////////////////// // FloatToBitPreservingString // ////////////////////////////////////////////////////////////////////////////////