KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_libeval_string_literal.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.TXT for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#include <
qa_utils/wx_utils/unit_test_utils.h
>
21
22
#include <
libeval_compiler/libeval_compiler.h
>
23
24
25
BOOST_AUTO_TEST_SUITE
( LibevalStringLiteral )
26
27
28
BOOST_AUTO_TEST_CASE
( EscapedTextCompilesBackUnchanged )
29
{
30
for
(
const
wxString&
text
: { wxString( wxS(
"it's"
) ), wxString( wxS(
"a\\'b"
) ), wxString( wxS(
"a\\b"
) ) } )
31
{
32
BOOST_TEST_CONTEXT
(
text
)
33
{
34
std::optional<wxString> literal =
LIBEVAL::EscapeStringLiteral
(
text
);
35
BOOST_REQUIRE
( literal );
36
37
LIBEVAL::COMPILER
compiler;
38
LIBEVAL::UCODE
code;
39
LIBEVAL::CONTEXT
context;
40
41
BOOST_REQUIRE
( compiler.
Compile
( wxS(
"'"
) + *literal + wxS(
"'"
), &code, &context ) );
42
BOOST_CHECK_EQUAL
( code.
Run
( &context )->
AsString
(),
text
);
43
}
44
}
45
46
BOOST_CHECK( !
LIBEVAL::EscapeStringLiteral
( wxS(
"BPECL2\\"
) ) );
47
}
48
49
50
BOOST_AUTO_TEST_SUITE_END
()
BITMAPS::text
@ text
Definition
bitmaps_list.h:632
LIBEVAL::COMPILER
Definition
libeval_compiler.h:614
LIBEVAL::COMPILER::Compile
bool Compile(const wxString &aString, UCODE *aCode, CONTEXT *aPreflightContext)
Definition
libeval_compiler.cpp:334
LIBEVAL::CONTEXT
Definition
libeval_compiler.h:346
LIBEVAL::UCODE
Definition
libeval_compiler.h:472
LIBEVAL::UCODE::Run
VALUE * Run(CONTEXT *ctx)
Definition
libeval_compiler.cpp:1425
LIBEVAL::VALUE::AsString
virtual const wxString & AsString() const
Definition
libeval_compiler.h:257
libeval_compiler.h
LIBEVAL::EscapeStringLiteral
std::optional< wxString > EscapeStringLiteral(const wxString &aText)
Escape text for use between the quotes of an expression string.
Definition
libeval_compiler.cpp:1472
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
Definition
test_api_enums.cpp:80
BOOST_AUTO_TEST_SUITE
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_REQUIRE
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_AUTO_TEST_SUITE_END
BOOST_AUTO_TEST_SUITE_END()
BOOST_TEST_CONTEXT
BOOST_TEST_CONTEXT("Test Clearance")
Definition
test_shape_arc.cpp:657
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(result, "25.4")
unit_test_utils.h
src
qa
tests
common
libeval
test_libeval_string_literal.cpp
Generated on Tue Oct 27 2026 00:06:38 for KiCad PCB EDA Suite by
1.13.2