loplugin:ostr basic

Change-Id: Ie5fc4676bd1cab2c0417b479bf08dda00936469a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167191
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2024-05-06 13:56:49 +02:00
parent 8468794443
commit 7d6e751faa
45 changed files with 481 additions and 481 deletions
+3 -3
View File
@@ -77,14 +77,14 @@ void Coverage::process_directory(const OUString& sDirName)
if (sFileURL.endsWith(".bas"))
{
MacroSnippet testMacro;
testMacro.LoadSourceFromFile("TestUtil", sMacroUtilsURL);
testMacro.LoadSourceFromFile("TestModule", sFileURL);
testMacro.LoadSourceFromFile(u"TestUtil"_ustr, sMacroUtilsURL);
testMacro.LoadSourceFromFile(u"TestModule"_ustr, sFileURL);
SbxVariableRef pReturn = testMacro.Run();
CPPUNIT_ASSERT_MESSAGE("No return variable huh?", pReturn.is());
fprintf(stderr, "macro result for %s\n", OUStringToOString(sFileURL,RTL_TEXTENCODING_UTF8).getStr());
fprintf(stderr, "macro returned:\n%s\n",
OUStringToOString(pReturn->GetOUString(), RTL_TEXTENCODING_UTF8).getStr());
CPPUNIT_ASSERT_EQUAL_MESSAGE("Result not as expected", OUString("OK"),
CPPUNIT_ASSERT_EQUAL_MESSAGE("Result not as expected", u"OK"_ustr,
pReturn->GetOUString());
}
}
+2 -2
View File
@@ -30,7 +30,7 @@ MacroSnippet::MacroSnippet( const OUString& sSource )
: mbError(false)
{
InitSnippet();
MakeModule("TestModule", sSource);
MakeModule(u"TestModule"_ustr, sSource);
}
MacroSnippet::MacroSnippet()
@@ -74,7 +74,7 @@ SbxVariableRef MacroSnippet::Run( const css::uno::Sequence< css::uno::Any >& rAr
SbxVariableRef pReturn;
if ( !Compile() )
return pReturn;
SbMethod* pMeth = mpMod.is() ? static_cast<SbMethod*>(mpMod->Find( "doUnitTest", SbxClassType::Method )) : nullptr;
SbMethod* pMeth = mpMod.is() ? static_cast<SbMethod*>(mpMod->Find( u"doUnitTest"_ustr, SbxClassType::Method )) : nullptr;
if ( pMeth )
{
if ( rArgs.hasElements() )
+6 -6
View File
@@ -31,18 +31,18 @@ namespace
};
OUString sTestEnableRuntime(
"Function doUnitTest as Integer\n"
u"Function doUnitTest as Integer\n"
"Dim Enable as Integer\n"
"Enable = 1\n"
"Enable = Enable + 2\n"
"doUnitTest = Enable\n"
"End Function\n"
"End Function\n"_ustr
);
OUString sTestDimEnable(
"Sub doUnitTest\n"
u"Sub doUnitTest\n"
"Dim Enable as String\n"
"End Sub\n"
"End Sub\n"_ustr
);
void EnableTest::testEnableRuntime()
@@ -63,10 +63,10 @@ void EnableTest::testDimEnable()
void EnableTest::testWin64()
{
MacroSnippet myMacro(" #If Win64\n"
MacroSnippet myMacro(u" #If Win64\n"
"Declare PtrSafe Function aht_apiGetOpenFileName Lib \"comdlg32.dll\""
"\n"
"#End if\n");
"#End if\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT_MESSAGE("#if Win64 Declare PtrSafe causes compile error", !myMacro.HasError() );
}
+24 -24
View File
@@ -14,11 +14,11 @@
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testRedefineArgument)
{
MacroSnippet aMacro("Sub doUnitTest(argName)\n"
MacroSnippet aMacro(u"Sub doUnitTest(argName)\n"
" If False Then\n"
" Dim argName\n"
" End If\n"
"End Sub\n");
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(aMacro.HasError());
CPPUNIT_ASSERT_EQUAL(ERRCODE_BASIC_VAR_DEFINED, aMacro.getError().GetCode());
@@ -26,8 +26,8 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testRedefineArgument)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testDoubleArgument)
{
MacroSnippet aMacro("Sub doUnitTest(argName, argName)\n"
"End Sub\n");
MacroSnippet aMacro(u"Sub doUnitTest(argName, argName)\n"
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(aMacro.HasError());
CPPUNIT_ASSERT_EQUAL(ERRCODE_BASIC_VAR_DEFINED, aMacro.getError().GetCode());
@@ -35,81 +35,81 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testDoubleArgument)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157)
{
MacroSnippet aMacro("Function extentComment() As Integer\n"
MacroSnippet aMacro(u"Function extentComment() As Integer\n"
" ' _\n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157_compatible)
{
MacroSnippet aMacro("Option Compatible\n"
MacroSnippet aMacro(u"Option Compatible\n"
"Function extentComment() As Integer\n"
" ' _\n"
"\n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157_vba)
{
MacroSnippet aMacro("Option VBASupport 1\n"
MacroSnippet aMacro(u"Option VBASupport 1\n"
"Function extentComment() As Integer\n"
" ' _\n"
"\n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149402)
{
MacroSnippet aMacro("Function extentComment() As Integer\n"
MacroSnippet aMacro(u"Function extentComment() As Integer\n"
" ' _ \n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" Else\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149402_compatible)
{
MacroSnippet aMacro("Option Compatible\n"
MacroSnippet aMacro(u"Option Compatible\n"
"Function extentComment() As Integer\n"
" ' _ \n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" Else\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149402_vba)
{
MacroSnippet aMacro("Option VBASupport 1\n"
MacroSnippet aMacro(u"Option VBASupport 1\n"
"Function extentComment() As Integer\n"
" ' _ \n"
" If Not extentComment Then\n"
" extentComment = 1\n"
" Else\n"
" End If\n"
"End Function\n");
"End Function\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT(!aMacro.HasError());
}
@@ -117,11 +117,11 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149402_vba)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_if)
{
// #If and #End directive
MacroSnippet aMacro("Sub doUnitTest\n"
MacroSnippet aMacro(u"Sub doUnitTest\n"
" #If 1 = 1 Then\n"
" Const a = 10\n"
" #End If\n"
"End Sub\n");
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT_MESSAGE("#If directive causes compile error", !aMacro.HasError());
}
@@ -129,14 +129,14 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_if)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_else)
{
// #Else directive
MacroSnippet aMacro("Sub doUnitTest\n"
MacroSnippet aMacro(u"Sub doUnitTest\n"
"a = 0\n"
"#If 1 = 0 Then\n"
" a = 10\n"
"#Else\n"
" a = 20\n"
"#End If\n"
"End Sub\n");
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT_MESSAGE("#Else directive causes compile error", !aMacro.HasError());
}
@@ -144,14 +144,14 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_else)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_elseif)
{
// #ElseIf directive
MacroSnippet aMacro("Sub doUnitTest\n"
MacroSnippet aMacro(u"Sub doUnitTest\n"
"a = 0\n"
" #If 1 = 0 Then\n"
" a = 10\n"
" #ElseIf 2 = 2 Then\n"
" a = 20\n"
" #End If\n"
"End Sub\n");
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT_MESSAGE("#ElseIf directive causes compile error", !aMacro.HasError());
}
@@ -159,11 +159,11 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_elseif)
CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf93727_const)
{
// #Const directive
MacroSnippet aMacro("#Const MaxValue = 1000\n"
MacroSnippet aMacro(u"#Const MaxValue = 1000\n"
"Sub doUnitTest\n"
" Dim value As Integer\n"
" value = MaxValue\n"
"End Sub\n");
"End Sub\n"_ustr);
aMacro.Compile();
CPPUNIT_ASSERT_MESSAGE("#Const directive causes compile error", !aMacro.HasError());
}
+6 -6
View File
@@ -28,7 +28,7 @@ class GlobalArrayTest : public CppUnit::TestFixture
SbModuleRef Module()
{
interpreter = new StarBASIC();
auto mod = interpreter->MakeModule("GlobalArray", R"BAS(
auto mod = interpreter->MakeModule(u"GlobalArray"_ustr, uR"BAS(
Type testType
iNr As Integer
@@ -49,7 +49,7 @@ Function Macro2 As String
Macro2 = aTestTypes(0).iNr & aTestTypes(0).sType & aTestTypes(1).iNr & aTestTypes(1).sType
End Function
)BAS");
)BAS"_ustr);
CPPUNIT_ASSERT(mod->Compile());
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, StarBASIC::GetErrBasic());
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, SbxBase::GetError());
@@ -61,15 +61,15 @@ End Function
void GlobalArrayTest::testMaintainsValueAcrossCalls()
{
auto m = Module();
auto Macro1 = m->FindMethod("Macro1", SbxClassType::Method);
auto Macro1 = m->FindMethod(u"Macro1"_ustr, SbxClassType::Method);
CPPUNIT_ASSERT_MESSAGE("Could not Find Macro1 in module", Macro1 != nullptr);
// There is no SbxMethod::call(), the basic code is exercised here in the copy ctor
SbxVariableRef returned = new SbxMethod{ *Macro1 };
CPPUNIT_ASSERT(returned->IsString());
CPPUNIT_ASSERT_EQUAL(OUString{ "1A" }, returned->GetOUString());
CPPUNIT_ASSERT_EQUAL(u"1A"_ustr, returned->GetOUString());
auto Macro2 = m->FindMethod("Macro2", SbxClassType::Method);
auto Macro2 = m->FindMethod(u"Macro2"_ustr, SbxClassType::Method);
CPPUNIT_ASSERT_MESSAGE("Could not Find Macro2 in module", Macro2 != nullptr);
returned = new SbxMethod{ *Macro2 };
CPPUNIT_ASSERT(returned->IsString());
@@ -77,7 +77,7 @@ void GlobalArrayTest::testMaintainsValueAcrossCalls()
// Without the fix in place, this test would have failed with:
// - Expected: 1A2B
// - Actual : 02B
CPPUNIT_ASSERT_EQUAL(OUString("1A2B"), returned->GetOUString());
CPPUNIT_ASSERT_EQUAL(u"1A2B"_ustr, returned->GetOUString());
}
// Put the test suite in the registry
+6 -6
View File
@@ -28,7 +28,7 @@ class GlobalAsNewTest : public CppUnit::TestFixture
SbModuleRef Module()
{
interpreter = new StarBASIC();
auto mod = interpreter->MakeModule("GlobalAsNew", R"BAS(
auto mod = interpreter->MakeModule(u"GlobalAsNew"_ustr, uR"BAS(
Global aDate As New "com.sun.star.util.Date"
Function GetDateAsString As String
@@ -43,7 +43,7 @@ Function SetDate
SetDate = GetDateAsString()
End Function
)BAS");
)BAS"_ustr);
CPPUNIT_ASSERT(mod->Compile());
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, StarBASIC::GetErrBasic());
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, SbxBase::GetError());
@@ -55,20 +55,20 @@ End Function
void GlobalAsNewTest::testMaintainsValueAcrossCalls()
{
auto m = Module();
auto GetDateAsString = m->FindMethod("GetDateAsString", SbxClassType::Method);
auto GetDateAsString = m->FindMethod(u"GetDateAsString"_ustr, SbxClassType::Method);
CPPUNIT_ASSERT_MESSAGE("Could not Find GetDateAsString in module", GetDateAsString != nullptr);
// There is no SbxMethod::call(), the basic code is exercised here in the copy ctor
SbxVariableRef returned = new SbxMethod{ *GetDateAsString };
CPPUNIT_ASSERT(returned->IsString());
//0-00-0 is the result of reading the default-initialized date
CPPUNIT_ASSERT_EQUAL(OUString{ "0-00-0" }, returned->GetOUString());
CPPUNIT_ASSERT_EQUAL(u"0-00-0"_ustr, returned->GetOUString());
auto SetDate = m->FindMethod("SetDate", SbxClassType::Method);
auto SetDate = m->FindMethod(u"SetDate"_ustr, SbxClassType::Method);
CPPUNIT_ASSERT_MESSAGE("Could not Find SetDate in module", SetDate != nullptr);
returned = new SbxMethod{ *SetDate };
CPPUNIT_ASSERT(returned->IsString());
OUString set_val("2019-06-30");
OUString set_val(u"2019-06-30"_ustr);
CPPUNIT_ASSERT_EQUAL(set_val, returned->GetOUString());
returned = new SbxMethod{ *GetDateAsString };
+12 -12
View File
@@ -34,7 +34,7 @@ public:
void Language_Conditionals::testIfNot()
{
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 1\n"
MacroSnippet myMacro(u"Option VBASupport 1\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -45,14 +45,14 @@ void Language_Conditionals::testIfNot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(1), pNew->GetInteger());
}
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 0\n"
MacroSnippet myMacro(u"Option VBASupport 0\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -63,7 +63,7 @@ void Language_Conditionals::testIfNot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
@@ -74,7 +74,7 @@ void Language_Conditionals::testIfNot()
void Language_Conditionals::testIfAndNot()
{
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 1\n"
MacroSnippet myMacro(u"Option VBASupport 1\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -87,14 +87,14 @@ void Language_Conditionals::testIfAndNot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(1), pNew->GetInteger());
}
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 0\n"
MacroSnippet myMacro(u"Option VBASupport 0\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -107,7 +107,7 @@ void Language_Conditionals::testIfAndNot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
@@ -118,7 +118,7 @@ void Language_Conditionals::testIfAndNot()
void Language_Conditionals::testNENot()
{
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 1\n"
MacroSnippet myMacro(u"Option VBASupport 1\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -131,14 +131,14 @@ void Language_Conditionals::testNENot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(1), pNew->GetInteger());
}
{ // need a block to ensure MacroSnippet is cleaned properly
MacroSnippet myMacro("Option VBASupport 0\n"
MacroSnippet myMacro(u"Option VBASupport 0\n"
"Option Explicit\n"
"\n"
"Function doUnitTest() As Integer\n"
@@ -151,7 +151,7 @@ void Language_Conditionals::testNENot()
"Else\n"
"doUnitTest = 0\n"
"End If\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
SbxVariableRef pNew = myMacro.Run();
+20 -20
View File
@@ -52,19 +52,19 @@ namespace
// tests the new behaviour, we should be able to
// directly modify the value of the nested 'HorizontalLine' struct
OUString sTestSource1(
"Function doUnitTest() as Integer\n"
u"Function doUnitTest() as Integer\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\"\n"
"b0.HorizontalLine.OuterLineWidth = 9\n"
"doUnitTest = b0.HorizontalLine.OuterLineWidth\n"
"End Function\n"
"End Function\n"_ustr
);
OUString sTestSource1Alt(
"Function doUnitTest() as Object\n"
u"Function doUnitTest() as Object\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\"\n"
"b0.HorizontalLine.OuterLineWidth = 9\n"
"doUnitTest = b0\n"
"End Function\n"
"End Function\n"_ustr
);
// tests the old behaviour, we should still be able
@@ -74,23 +74,23 @@ OUString sTestSource1Alt(
// c) modifying the new instance
// d) setting b0.HorizontalLine with the value of the new instance
OUString sTestSource2(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\", l as new \"com.sun.star.table.BorderLine\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
"b0.HorizontalLine = l\n"
"doUnitTest = b0.HorizontalLine.OuterLineWidth\n"
"End Function\n"
"End Function\n"_ustr
);
OUString sTestSource2Alt(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\", l as new \"com.sun.star.table.BorderLine\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
"b0.HorizontalLine = l\n"
"doUnitTest = b0\n"
"End Function\n"
"End Function\n"_ustr
);
// it should be legal to assign a variant to a struct ( and copy by val )
// make sure we aren't copying by reference, we make sure that l is not
@@ -98,18 +98,18 @@ OUString sTestSource2Alt(
// OuterLineWidth of 4 & 9 respectively and we should be returning
// 13 the sum of the two ( hopefully unique values if we haven't copied by reference )
OUString sTestSource3(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
"b0.HorizontalLine = l\n"
"l.OuterLineWidth = 4\n"
"doUnitTest = b0.HorizontalLine.OuterLineWidth + l.OuterLineWidth\n"
"End Function\n"
"End Function\n"_ustr
);
OUString sTestSource3Alt(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
@@ -119,24 +119,24 @@ OUString sTestSource3Alt(
"result(0) = b0\n"
"result(1) = l\n"
"doUnitTest = result\n"
"End Function\n"
"End Function\n"_ustr
);
// nearly the same as above but this time for a fixed type
// variable
OUString sTestSource4(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\", l as new \"com.sun.star.table.BorderLine\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
"b0.HorizontalLine = l\n"
"l.OuterLineWidth = 4\n"
"doUnitTest = b0.HorizontalLine.OuterLineWidth + l.OuterLineWidth\n"
"End Function\n"
"End Function\n"_ustr
);
OUString sTestSource4Alt(
"Function doUnitTest()\n"
u"Function doUnitTest()\n"
"Dim b0 as new \"com.sun.star.table.TableBorder\", l as new \"com.sun.star.table.BorderLine\"\n"
"l = b0.HorizontalLine\n"
"l.OuterLineWidth = 9\n"
@@ -146,7 +146,7 @@ OUString sTestSource4Alt(
"result(0) = b0\n"
"result(1) = l\n"
"doUnitTest = result\n"
"End Function\n"
"End Function\n"_ustr
);
// Although basic might appear to correctly change nested struct elements
@@ -155,13 +155,13 @@ OUString sTestSource4Alt(
// We need to additionally check the actual uno struct to see if the
// changes made are *really* reflected in the object
OUString sTestSource5(
"Function doUnitTest() as Object\n"
u"Function doUnitTest() as Object\n"
"Dim aWinDesc as new \"com.sun.star.awt.WindowDescriptor\"\n"
"Dim aRect as new \"com.sun.star.awt.Rectangle\"\n"
"aRect.X = 200\n"
"aWinDesc.Bounds = aRect\n"
"doUnitTest = aWinDesc\n"
"End Function\n"
"End Function\n"_ustr
);
@@ -300,13 +300,13 @@ void Nested_Struct::testUnoAccess()
void Nested_Struct::testTdf134576()
{
MacroSnippet myMacro("Function doUnitTest()\n"
MacroSnippet myMacro(u"Function doUnitTest()\n"
" On Error Resume Next\n"
" For Each a In b\n"
" c.d\n"
" Next\n"
" doUnitTest = 1\n"
"End Function\n");
"End Function\n"_ustr);
myMacro.Compile();
CPPUNIT_ASSERT(!myMacro.HasError());
+141 -142
View File
@@ -106,53 +106,53 @@ std::vector<Symbol> getSymbols(const OUString& source, bool bCompatible = false)
void ScannerTest::testBlankLines()
{
std::vector<Symbol> symbols;
symbols = getSymbols("");
symbols = getSymbols(u""_ustr);
CPPUNIT_ASSERT(symbols.empty());
symbols = getSymbols("\r\n");
symbols = getSymbols(u"\r\n"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
symbols = getSymbols("\n");
symbols = getSymbols(u"\n"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
symbols = getSymbols("\r");
symbols = getSymbols(u"\r"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
symbols = getSymbols("\r\n\r\n");
symbols = getSymbols(u"\r\n\r\n"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("\n\r");
symbols = getSymbols(u"\n\r"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("\n\r\n");
symbols = getSymbols(u"\n\r\n"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("\r\n\r");
symbols = getSymbols(u"\r\n\r"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols(" ");
symbols = getSymbols(u" "_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -206,7 +206,7 @@ void ScannerTest::testOperators()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("==");
symbols = getSymbols(u"=="_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(sourceE, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -255,12 +255,12 @@ void ScannerTest::testAlphanum()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("1asfdasfd");
symbols = getSymbols(u"1asfdasfd"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT(symbols[0].text.isEmpty()); // Can't start symbol with a digit
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("asfdasfd"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"asfdasfd"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[2].type);
@@ -293,33 +293,32 @@ void ScannerTest::testAlphanum()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
// tdf#125637 - don't change underscore to space
symbols = getSymbols(source7);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("joxclk_"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"joxclk_"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
// tdf#125637 - don't change underscore to space
CPPUNIT_ASSERT_EQUAL(OUString("joxclk_"), source7);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols(" asdf ");
symbols = getSymbols(u" asdf "_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("asdf"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"asdf"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols(" 19395 asdfa ");
symbols = getSymbols(u" 19395 asdfa "_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT(symbols[0].text.isEmpty());
CPPUNIT_ASSERT_DOUBLES_EQUAL(19395.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("asdfa"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"asdfa"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[2].type);
symbols = getSymbols("\n1\n2\na sdf");
symbols = getSymbols(u"\n1\n2\na sdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(8), symbols.size());
CPPUNIT_ASSERT_EQUAL(cr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -336,12 +335,12 @@ void ScannerTest::testAlphanum()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(symbols[5].text.getLength()));
CPPUNIT_ASSERT_EQUAL('a', static_cast<char>(symbols[5].text[0]));
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[5].type);
CPPUNIT_ASSERT_EQUAL(OUString("sdf"), symbols[6].text);
CPPUNIT_ASSERT_EQUAL(u"sdf"_ustr, symbols[6].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[6].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[7].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[7].type);
symbols = getSymbols("asdf.asdf");
symbols = getSymbols(u"asdf.asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -352,7 +351,7 @@ void ScannerTest::testAlphanum()
CPPUNIT_ASSERT_EQUAL(cr, symbols[3].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[3].type);
symbols = getSymbols("..");
symbols = getSymbols(u".."_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(dot, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -366,31 +365,31 @@ void ScannerTest::testComments()
{
std::vector<Symbol> symbols;
symbols = getSymbols("REM asdf");
symbols = getSymbols(u"REM asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(rem, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
symbols = getSymbols("REMasdf");
symbols = getSymbols(u"REMasdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("REMasdf"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"REMasdf"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("'asdf");
symbols = getSymbols(u"'asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(1), symbols.size());
CPPUNIT_ASSERT_EQUAL(rem, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
symbols = getSymbols("asdf _\n'100");
symbols = getSymbols(u"asdf _\n'100"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(rem, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("'asdf _\n100");
symbols = getSymbols(u"'asdf _\n100"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(rem, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -400,14 +399,14 @@ void ScannerTest::testComments()
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[2].type);
symbols = getSymbols("'asdf _\n'100");
symbols = getSymbols(u"'asdf _\n'100"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(rem, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(rem, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("'asdf _\n 1234 _\n asdf'");
symbols = getSymbols(u"'asdf _\n 1234 _\n asdf'"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(rem, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
@@ -424,29 +423,29 @@ void ScannerTest::testGoto()
{
std::vector<Symbol> symbols;
symbols = getSymbols("goto");
symbols = getSymbols(u"goto"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(goto_, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
symbols = getSymbols("go to");
symbols = getSymbols(u"go to"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("go"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"go"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("to"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"to"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[2].type);
symbols = getSymbols("go\nto");
symbols = getSymbols(u"go\nto"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("go"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"go"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(OUString("to"), symbols[2].text);
CPPUNIT_ASSERT_EQUAL(u"to"_ustr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[2].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[3].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[3].type);
@@ -456,21 +455,21 @@ void ScannerTest::testGotoCompatible()
{
std::vector<Symbol> symbols;
symbols = getSymbols("goto", true);
symbols = getSymbols(u"goto"_ustr, true);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(goto_, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("go to", true);
symbols = getSymbols(u"go to"_ustr, true);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(goto_, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("go\nto", true);
symbols = getSymbols(u"go\nto"_ustr, true);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("go"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"go"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(OUString("to"), symbols[2].text);
CPPUNIT_ASSERT_EQUAL(u"to"_ustr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[3].text);
}
@@ -478,39 +477,39 @@ void ScannerTest::testExclamation()
{
std::vector<Symbol> symbols;
symbols = getSymbols("asdf!asdf");
symbols = getSymbols(u"asdf!asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(excl, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(asdf, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[3].text);
symbols = getSymbols("!1234");
symbols = getSymbols(u"!1234"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(excl, symbols[0].text);
CPPUNIT_ASSERT(symbols[1].text.isEmpty());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1234.0, symbols[1].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("!_3");
symbols = getSymbols(u"!_3"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(excl, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(OUString("_3"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"_3"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("!$");
symbols = getSymbols(u"!$"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(excl, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(OUString("$"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"$"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("!%");
symbols = getSymbols(u"!%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(excl, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(OUString("%"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"%"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("!\n");
symbols = getSymbols(u"!\n"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(excl, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
@@ -521,14 +520,14 @@ void ScannerTest::testNumbers()
std::vector<Symbol> symbols;
sal_Int32 errors;
symbols = getSymbols("12345", errors);
symbols = getSymbols(u"12345"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(12345.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("1.2.3", errors);
symbols = getSymbols(u"1.2.3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.2, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
@@ -537,115 +536,115 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
symbols = getSymbols("123.4", errors);
symbols = getSymbols(u"123.4"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(123.4, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("0.5", errors);
symbols = getSymbols(u"0.5"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(.5, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("5.0", errors);
symbols = getSymbols(u"5.0"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(5.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("0.0", errors);
symbols = getSymbols(u"0.0"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("-3", errors);
symbols = getSymbols(u"-3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("-"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"-"_ustr, symbols[0].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(3.0, symbols[1].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("-0.0", errors);
symbols = getSymbols(u"-0.0"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString("-"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"-"_ustr, symbols[0].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[1].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("12dE3", errors);
symbols = getSymbols(u"12dE3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(12.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("dE3"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"dE3"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
symbols = getSymbols("12e3", errors);
symbols = getSymbols(u"12e3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(12000.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("12D+3", errors);
symbols = getSymbols(u"12D+3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(12000.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("12e++3", errors);
symbols = getSymbols(u"12e++3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(6), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(12.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("e"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(OUString("+"), symbols[2].text);
CPPUNIT_ASSERT_EQUAL(OUString("+"), symbols[3].text);
CPPUNIT_ASSERT_EQUAL(u"e"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"+"_ustr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(u"+"_ustr, symbols[3].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(3.0, symbols[4].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[4].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[5].text);
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
symbols = getSymbols("12e-3", errors);
symbols = getSymbols(u"12e-3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(.012, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("12e-3+", errors);
symbols = getSymbols(u"12e-3+"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(.012, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString("+"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"+"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("1,2,3", errors);
symbols = getSymbols(u"1,2,3"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(6), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(OUString(","), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u","_ustr, symbols[1].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(2.0, symbols[2].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[2].type);
CPPUNIT_ASSERT_EQUAL(OUString(","), symbols[3].text);
CPPUNIT_ASSERT_EQUAL(u","_ustr, symbols[3].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(3.0, symbols[4].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[4].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[5].text);
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("1."
symbols = getSymbols(u"1."
"0000000000000000000000000000000000000000000000000000000000000000000000000"
"000000000000000000000000000000000000000000000000000",
"000000000000000000000000000000000000000000000000000"_ustr,
errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[0].number, 1E-12);
@@ -655,7 +654,7 @@ void ScannerTest::testNumbers()
// the buffer is artificially constrained by the scanner.
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors)); // HACK
symbols = getSymbols("10e308", errors);
symbols = getSymbols(u"10e308"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(std::numeric_limits<double>::infinity(), symbols[0].number);
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
@@ -663,7 +662,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors)); // math error, overflow
// trailing data type character % = SbxINTEGER
symbols = getSymbols("1.23%");
symbols = getSymbols(u"1.23%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -671,7 +670,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// trailing data type character & = SbxLONG
symbols = getSymbols("1.23&");
symbols = getSymbols(u"1.23&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -679,7 +678,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// trailing data type character ! = SbxSINGLE
symbols = getSymbols("1.23!");
symbols = getSymbols(u"1.23!"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -687,7 +686,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// trailing data type character # = SbxDOUBLE
symbols = getSymbols("1.23#");
symbols = getSymbols(u"1.23#"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -695,7 +694,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// trailing data type character @ = SbxCURRENCY
symbols = getSymbols("1.23@");
symbols = getSymbols(u"1.23@"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -703,7 +702,7 @@ void ScannerTest::testNumbers()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// trailing data type character $ = SbxSTRING
symbols = getSymbols("1.23$", errors);
symbols = getSymbols(u"1.23$"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.23, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -717,37 +716,37 @@ void ScannerTest::testDataType()
{
std::vector<Symbol> symbols;
symbols = getSymbols("asdf%");
symbols = getSymbols(u"asdf%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf&");
symbols = getSymbols(u"asdf&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxLONG, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf!");
symbols = getSymbols(u"asdf!"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxSINGLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf#");
symbols = getSymbols(u"asdf#"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxDOUBLE, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf@");
symbols = getSymbols(u"asdf@"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxCURRENCY, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf$");
symbols = getSymbols(u"asdf$"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxSTRING, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("asdf ");
symbols = getSymbols(u"asdf "_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
@@ -758,31 +757,31 @@ void ScannerTest::testHexOctal()
sal_Int32 errors;
std::vector<Symbol> symbols;
symbols = getSymbols("&HA");
symbols = getSymbols(u"&HA"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(10.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&HASDF");
symbols = getSymbols(u"&HASDF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(2783.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&H10");
symbols = getSymbols(u"&H10"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(16.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&&H&1H1&H1");
symbols = getSymbols(u"&&H&1H1&H1"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(6), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString("&"), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(u"&"_ustr, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[0].type);
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[1].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[1].text);
@@ -791,44 +790,44 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[2].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[2].type);
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[3].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString("H1"), symbols[3].text);
CPPUNIT_ASSERT_EQUAL(u"H1"_ustr, symbols[3].text);
CPPUNIT_ASSERT_EQUAL(SbxLONG, symbols[3].type);
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[4].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString("H1"), symbols[4].text);
CPPUNIT_ASSERT_EQUAL(u"H1"_ustr, symbols[4].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[4].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[5].text);
symbols = getSymbols("&O&O12");
symbols = getSymbols(u"&O&O12"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxLONG, symbols[0].type);
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[1].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString("O12"), symbols[1].text);
CPPUNIT_ASSERT_EQUAL(u"O12"_ustr, symbols[1].text);
CPPUNIT_ASSERT_EQUAL(SbxVARIANT, symbols[1].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("&O10");
symbols = getSymbols(u"&O10"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(8.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&HO");
symbols = getSymbols(u"&HO"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&O123000000000000000000000");
symbols = getSymbols(u"&O123000000000000000000000"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
// TODO: this line fails on 64 bit systems!!!
// CPPUNIT_ASSERT_EQUAL(symbols[0].number, -1744830464);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&H1.23");
symbols = getSymbols(u"&H1.23"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, symbols[0].number, 1E-12);
@@ -841,7 +840,7 @@ void ScannerTest::testHexOctal()
/* tdf#62323, tdf#62326 - conversion of Hex literals to basic signed Integers */
// &H0 = 0
symbols = getSymbols("&H0");
symbols = getSymbols(u"&H0"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -849,7 +848,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &H8000 = -32768
symbols = getSymbols("&H8000");
symbols = getSymbols(u"&H8000"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(SbxMININT, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -857,7 +856,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &H80000000 = -2147483648
symbols = getSymbols("&H80000000");
symbols = getSymbols(u"&H80000000"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(SbxMINLNG, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -865,7 +864,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &HFFFF = -1
symbols = getSymbols("&HFFFF");
symbols = getSymbols(u"&HFFFF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -873,7 +872,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &HFFFFFFFF = -1
symbols = getSymbols("&HFFFFFFFF");
symbols = getSymbols(u"&HFFFFFFFF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -881,7 +880,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &H7FFF = 32767
symbols = getSymbols("&H7FFF");
symbols = getSymbols(u"&H7FFF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(SbxMAXINT, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -889,7 +888,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &H7FFFFFFF = 2147483647
symbols = getSymbols("&H7FFFFFFF");
symbols = getSymbols(u"&H7FFFFFFF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(SbxMAXLNG, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -899,7 +898,7 @@ void ScannerTest::testHexOctal()
/* tdf#130476 - trailing data type characters */
// % = SbxINTEGER
symbols = getSymbols("&H0%");
symbols = getSymbols(u"&H0%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -907,7 +906,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// & = SbxLONG
symbols = getSymbols("&H0&");
symbols = getSymbols(u"&H0&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -915,7 +914,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// ! = SbxSINGLE
symbols = getSymbols("&H0!");
symbols = getSymbols(u"&H0!"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -923,7 +922,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// # = SbxDOUBLE
symbols = getSymbols("&H0#");
symbols = getSymbols(u"&H0#"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -931,7 +930,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// @ = SbxCURRENCY
symbols = getSymbols("&H0@");
symbols = getSymbols(u"&H0@"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -939,7 +938,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// $ = SbxSTRING
symbols = getSymbols("&H0$", errors);
symbols = getSymbols(u"&H0$"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -949,7 +948,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
// % = SbxINTEGER
symbols = getSymbols("&O0%");
symbols = getSymbols(u"&O0%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -957,7 +956,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// & = SbxLONG
symbols = getSymbols("&O0&");
symbols = getSymbols(u"&O0&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -965,7 +964,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// ! = SbxSINGLE
symbols = getSymbols("&O0!");
symbols = getSymbols(u"&O0!"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -973,7 +972,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// # = SbxDOUBLE
symbols = getSymbols("&O0#");
symbols = getSymbols(u"&O0#"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -981,7 +980,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// @ = SbxCURRENCY
symbols = getSymbols("&O0@");
symbols = getSymbols(u"&O0@"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -989,7 +988,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// $ = SbxSTRING
symbols = getSymbols("&O0$", errors);
symbols = getSymbols(u"&O0$"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -999,7 +998,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
// maximum for Hex % = SbxINTEGER
symbols = getSymbols("&HFFFF%");
symbols = getSymbols(u"&HFFFF%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1007,7 +1006,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// overflow for Hex % = SbxINTEGER
symbols = getSymbols("&H10000%", errors);
symbols = getSymbols(u"&H10000%"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1017,7 +1016,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
// maximum for Octal % = SbxINTEGER
symbols = getSymbols("&O177777%");
symbols = getSymbols(u"&O177777%"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1025,7 +1024,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// overflow for Octal % = SbxINTEGER
symbols = getSymbols("&O200000%", errors);
symbols = getSymbols(u"&O200000%"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1035,7 +1034,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
// maximum for Hex & = SbxLONG
symbols = getSymbols("&H7FFFFFFF&");
symbols = getSymbols(u"&H7FFFFFFF&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(2147483647.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1043,7 +1042,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// minimum for Hex & = SbxLONG
symbols = getSymbols("&H80000000&");
symbols = getSymbols(u"&H80000000&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-2147483648.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1051,7 +1050,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// overflow for Hex & = SbxLONG
symbols = getSymbols("&H100000000&", errors);
symbols = getSymbols(u"&H100000000&"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1061,7 +1060,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(1u, static_cast<unsigned int>(errors));
// maximum for Octal & = SbxLONG
symbols = getSymbols("&O17777777777&");
symbols = getSymbols(u"&O17777777777&"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(2147483647.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1069,7 +1068,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// minimum for Octal & = SbxLONG
symbols = getSymbols("&O20000000000&", errors);
symbols = getSymbols(u"&O20000000000&"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-2147483648.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1077,7 +1076,7 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// overflow for Octal & = SbxLONG
symbols = getSymbols("&O40000000000&", errors);
symbols = getSymbols(u"&O40000000000&"_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1089,7 +1088,7 @@ void ScannerTest::testHexOctal()
/* test for leading zeros */
// &H0000000FFFF = 65535
symbols = getSymbols("&H0000000FFFF");
symbols = getSymbols(u"&H0000000FFFF"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1097,14 +1096,14 @@ void ScannerTest::testHexOctal()
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
// &O00000123 = 83
symbols = getSymbols("&O00000123");
symbols = getSymbols(u"&O00000123"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(83.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
CPPUNIT_ASSERT_EQUAL(SbxINTEGER, symbols[0].type);
CPPUNIT_ASSERT_EQUAL(cr, symbols[1].text);
symbols = getSymbols("&O7777777");
symbols = getSymbols(u"&O7777777"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(2), symbols.size());
CPPUNIT_ASSERT_DOUBLES_EQUAL(2097151.0, symbols[0].number, 1E-12);
CPPUNIT_ASSERT_EQUAL(OUString(), symbols[0].text);
@@ -1116,14 +1115,14 @@ void ScannerTest::testTdf103104()
{
std::vector<Symbol> symbols;
symbols = getSymbols("asdf _\n asdf");
symbols = getSymbols(u"asdf _\n asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(3), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(asdf, symbols[1].text);
CPPUNIT_ASSERT(symbols[1].ws);
CPPUNIT_ASSERT_EQUAL(cr, symbols[2].text);
symbols = getSymbols("asdf. _\n asdf");
symbols = getSymbols(u"asdf. _\n asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(dot, symbols[1].text);
@@ -1132,7 +1131,7 @@ void ScannerTest::testTdf103104()
CPPUNIT_ASSERT(symbols[2].ws);
CPPUNIT_ASSERT_EQUAL(cr, symbols[3].text);
symbols = getSymbols("asdf _\n .asdf");
symbols = getSymbols(u"asdf _\n .asdf"_ustr);
CPPUNIT_ASSERT_EQUAL(size_t(4), symbols.size());
CPPUNIT_ASSERT_EQUAL(asdf, symbols[0].text);
CPPUNIT_ASSERT_EQUAL(dot, symbols[1].text);
@@ -1149,10 +1148,10 @@ void ScannerTest::testTdf136032()
// tdf#136032 - abort scan of a string beginning with a hashtag,
// if a comma/whitespace is found. Otherwise, the compiler raises a syntax error.
symbols = getSymbols("Print #i,\"A#B\"", errors);
symbols = getSymbols(u"Print #i,\"A#B\""_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(5), symbols.size());
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
symbols = getSymbols("Print #i, \"A#B\"", errors);
symbols = getSymbols(u"Print #i, \"A#B\""_ustr, errors);
CPPUNIT_ASSERT_EQUAL(size_t(5), symbols.size());
CPPUNIT_ASSERT_EQUAL(0u, static_cast<unsigned int>(errors));
}
+4 -3
View File
@@ -52,7 +52,7 @@ End Function
sBasic = sBasic.replaceFirst("$PNGFILENAME", aDataFileName);
interpreter = new StarBASIC();
auto mod = interpreter->MakeModule("BitsPerPixel", sBasic);
auto mod = interpreter->MakeModule(u"BitsPerPixel"_ustr, sBasic);
CPPUNIT_ASSERT(mod->Compile());
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, StarBASIC::GetErrBasic());
@@ -65,7 +65,8 @@ End Function
void TestTdf149714::testBitsPerPixel()
{
auto m = Module();
auto GetBitsPerPixelAsString = m->FindMethod("GetBitsPerPixelAsString", SbxClassType::Method);
auto GetBitsPerPixelAsString
= m->FindMethod(u"GetBitsPerPixelAsString"_ustr, SbxClassType::Method);
CPPUNIT_ASSERT_MESSAGE("Could not Find GetBitsPerPixelAsString in module",
GetBitsPerPixelAsString != nullptr);
@@ -75,7 +76,7 @@ void TestTdf149714::testBitsPerPixel()
// Without the fix in place this would fail with:
// - Expected: 24
// - Actual: True
CPPUNIT_ASSERT_EQUAL(OUString{ "24" }, returned->GetOUString());
CPPUNIT_ASSERT_EQUAL(u"24"_ustr, returned->GetOUString());
}
// Put the test suite in the registry
+3 -3
View File
@@ -164,14 +164,14 @@ void VBATest::testMiscVBAFunctions()
+ OUString::createFromAscii( macroSource[ i ] );
MacroSnippet myMacro;
myMacro.LoadSourceFromFile("TestUtil", sMacroUtilsURL);
myMacro.LoadSourceFromFile("TestModule", sMacroURL);
myMacro.LoadSourceFromFile(u"TestUtil"_ustr, sMacroUtilsURL);
myMacro.LoadSourceFromFile(u"TestModule"_ustr, sMacroURL);
SbxVariableRef pReturn = myMacro.Run();
CPPUNIT_ASSERT_MESSAGE("No return variable huh?", pReturn.is());
fprintf(stderr, "macro result for %s\n", macroSource[i]);
fprintf(stderr, "macro returned:\n%s\n",
OUStringToOString(pReturn->GetOUString(), RTL_TEXTENCODING_UTF8).getStr());
CPPUNIT_ASSERT_EQUAL_MESSAGE("Result not as expected", OUString("OK"),
CPPUNIT_ASSERT_EQUAL_MESSAGE("Result not as expected", u"OK"_ustr,
pReturn->GetOUString());
}
}