Merge pull request #1888 from KLayout/issue-1885

Fixed #1885
This commit is contained in:
Matthias Köfferlein 2024-10-19 16:32:42 +02:00 committed by GitHub
commit 9cf3c528a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 42 additions and 1 deletions

View File

@ -57,7 +57,8 @@ GenericWriterOptions::GenericWriterOptions ()
m_oasis_recompress = save_options.get_option_by_name ("oasis_recompress").to_bool ();
m_oasis_permissive = save_options.get_option_by_name ("oasis_permissive").to_bool ();
m_oasis_write_std_properties = save_options.get_option_by_name ("oasis_write_std_properties").to_int ();
m_oasis_subst_char = save_options.get_option_by_name ("oasis_substitution_char").to_string ();
// No substitution by default (issue #1885), so skip this:
// m_oasis_subst_char = save_options.get_option_by_name ("oasis_substitution_char").to_string ();
m_cif_dummy_calls = save_options.get_option_by_name ("cif_dummy_calls").to_bool ();
m_cif_blank_separator = save_options.get_option_by_name ("cif_blank_separator").to_bool ();
@ -310,6 +311,8 @@ void GenericWriterOptions::set_oasis_substitution_char (const std::string &text)
{
if (! text.empty ()) {
m_oasis_subst_char = text[0];
} else {
m_oasis_subst_char = std::string ();
}
}

View File

@ -313,3 +313,41 @@ TEST(11)
EXPECT_EQ (stream_opt.get_option_by_name ("cell_conflict_resolution").to_string (), "RenameCell");
}
// Testing writer options
TEST(12_issue1885)
{
bd::GenericWriterOptions opt;
tl::CommandLineOptions cmd;
opt.add_options (cmd);
db::Layout layout;
db::SaveLayoutOptions stream_opt;
opt.configure (stream_opt, layout);
EXPECT_EQ (stream_opt.get_option_by_name ("oasis_substitution_char").to_string (), "");
const char *argv[] = {
"x",
"--subst-char=x",
};
cmd.parse (sizeof (argv) / sizeof (argv[0]), const_cast<char **> (argv));
opt.configure (stream_opt, layout);
EXPECT_EQ (stream_opt.get_option_by_name ("oasis_substitution_char").to_string (), "x");
const char *argv2[] = {
"x",
"--subst-char=",
};
cmd.parse (sizeof (argv2) / sizeof (argv2[0]), const_cast<char **> (argv2));
opt.configure (stream_opt, layout);
EXPECT_EQ (stream_opt.get_option_by_name ("oasis_substitution_char").to_string (), "");
}