From 883ff247f375c164dc0b5299ab5ca9f94272ea96 Mon Sep 17 00:00:00 2001 From: Mingun Date: Fri, 8 Mar 2024 15:02:05 +0500 Subject: [PATCH] Fix to_i conversion for C++ that was changed in 0acd030cbd60915657365d2eafacdade45690eec Fixes [info] - cpp_stl:"12345".to_i *** FAILED *** [info] "[kaitai::kstream::string_to_int](std::string("12345"..." was not equal to "[std::stoi](std::string("12345"..." (TranslatorSpec.scala:520) [info] Analysis: [info] "[kaitai::kstream::string_to_int](std::string("12345"..." -> "[std::stoi](std::string("12345"..." [info] - cpp_stl:"1234fe".to_i(16) *** FAILED *** [info] "[kaitai::kstream::string_to_int(std::string("1234fe")], 16)" was not equal to "[std::stoi(std::string("1234fe"), 0], 16)" (TranslatorSpec.scala:533) [info] Analysis: [info] "[kaitai::kstream::string_to_int(std::string("1234fe")], 16)" -> "[std::stoi(std::string("1234fe"), 0], 16)" --- .../scala/io/kaitai/struct/translators/TranslatorSpec.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jvm/src/test/scala/io/kaitai/struct/translators/TranslatorSpec.scala b/jvm/src/test/scala/io/kaitai/struct/translators/TranslatorSpec.scala index e1b708c8f..8f067d6af 100644 --- a/jvm/src/test/scala/io/kaitai/struct/translators/TranslatorSpec.scala +++ b/jvm/src/test/scala/io/kaitai/struct/translators/TranslatorSpec.scala @@ -518,7 +518,7 @@ class TranslatorSpec extends AnyFunSuite { )) full("\"12345\".to_i", CalcIntType, CalcIntType, Map[LanguageCompilerStatic, String]( - CppCompiler -> "std::stoi(std::string(\"12345\"))", + CppCompiler -> "kaitai::kstream::string_to_int(std::string(\"12345\"))", CSharpCompiler -> "Convert.ToInt64(\"12345\", 10)", GoCompiler -> "func()(int){i, err := strconv.Atoi(\"12345\"); if (err != nil) { panic(err) }; return i}()", JavaCompiler -> "Long.parseLong(\"12345\", 10)", @@ -531,7 +531,7 @@ class TranslatorSpec extends AnyFunSuite { )) full("\"1234fe\".to_i(16)", CalcIntType, CalcIntType, Map[LanguageCompilerStatic, String]( - CppCompiler -> "std::stoi(std::string(\"1234fe\"), 0, 16)", + CppCompiler -> "kaitai::kstream::string_to_int(std::string(\"1234fe\"), 16)", CSharpCompiler -> "Convert.ToInt64(\"1234fe\", 16)", GoCompiler -> "func()(int64){i, err := strconv.ParseInt(\"1234fe\", 16, 64); if (err != nil) { panic(err) }; return i}()", JavaCompiler -> "Long.parseLong(\"1234fe\", 16)",