From 7d316b2a2c2b21ac85b548acd53671109c8967f7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 14 Nov 2021 14:39:42 +0100 Subject: [PATCH] Added missing file --- testdata/ruby/layMacro.rb | 184 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 testdata/ruby/layMacro.rb diff --git a/testdata/ruby/layMacro.rb b/testdata/ruby/layMacro.rb new file mode 100644 index 000000000..e246e4030 --- /dev/null +++ b/testdata/ruby/layMacro.rb @@ -0,0 +1,184 @@ +# encoding: UTF-8 + +# KLayout Layout Viewer +# Copyright (C) 2006-2021 Matthias Koefferlein +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +if !$:.member?(File::dirname($0)) + $:.push(File::dirname($0)) +end + +load("test_prologue.rb") + +class LAYMacro_TestClass < TestBase + + def test_1 + + macro = RBA::Macro::new + + macro.version = "1.7" + assert_equal(macro.version, "1.7") + + macro.doc = "%doc" + assert_equal(macro.doc, "%doc") + + macro.description = "%description" + assert_equal(macro.description, "%description") + + macro.prolog = "%prolog" + assert_equal(macro.prolog, "%prolog") + + macro.epilog = "%epilog" + assert_equal(macro.epilog, "%epilog") + + macro.category = "%category" + assert_equal(macro.category, "%category") + + macro.shortcut = "%shortcut" + assert_equal(macro.shortcut, "%shortcut") + + assert_equal(macro.is_autorun?, false) + macro.is_autorun = true + assert_equal(macro.is_autorun?, true) + + assert_equal(macro.is_autorun_early?, false) + macro.is_autorun_early = true + assert_equal(macro.is_autorun_early?, true) + + macro.format = RBA::Macro::PlainTextFormat + assert_equal(macro.format == RBA::Macro::PlainTextFormat, true) + macro.format = RBA::Macro::MacroFormat + assert_equal(macro.format == RBA::Macro::MacroFormat, true) + + macro.interpreter = RBA::Macro::Ruby + assert_equal(macro.interpreter == RBA::Macro::Ruby, true) + assert_equal(macro.interpreter_name, "Ruby") + macro.interpreter = RBA::Macro::Python + assert_equal(macro.interpreter == RBA::Macro::Python, true) + assert_equal(macro.interpreter_name, "Python") + + macro.dsl_interpreter = "%dsl" + assert_equal(macro.dsl_interpreter, "%dsl") + + macro.text = "%text" + macro.format = RBA::Macro::PlainTextWithHashAnnotationsFormat + assert_equal(macro.text, "%text") + macro.sync_text_with_properties + assert_equal(macro.text, "# $description: %description\n" + + "# $prolog: %prolog\n" + + "# $epilog: %epilog\n" + + "# $version: 1.7\n" + + "# $autorun\n" + + "# $autorun-early\n" + + "# $shortcut: %shortcut\n" + + "%text") + + macro.text = "# $description: %description\n" + + "# $prolog: %prolog\n" + + "# $epilog: %epilog\n" + + "# $version: 7.1\n" + + "# $autorun\n" + + "# $autorun-early\n" + + "# $shortcut: %shortcut\n" + + "%text" + macro.sync_properties_with_text + assert_equal(macro.version, "7.1") + + macro.group_name = "%group" + assert_equal(macro.group_name, "%group") + + assert_equal(macro.show_in_menu?, false) + macro.show_in_menu = true + assert_equal(macro.show_in_menu?, true) + + macro.menu_path = "menu.path" + assert_equal(macro.menu_path, "menu.path") + + end + + def test_2 + + macro_file = File.join($ut_testtmp, "test.lym") + File.open(macro_file, "w") do |file| + file.write(<<"END") + + + %description + 42 + ruby + +$test_output = "x" + $test_input + + +END + end + + macro = RBA::Macro::new(macro_file) + assert_equal(macro.description, "%description") + assert_equal(macro.path, macro_file) + + $test_input = "42" + $test_output = "" + macro.run + assert_equal($test_output, "x42") + + macro_file2 = File.join($ut_testtmp, "test2.lym") + macro.save_to(macro_file2) + + macro2 = RBA::Macro::new(macro_file2) + assert_equal(macro2.path, macro_file2) + + end + + def test_3 + + pya = RBA::Interpreter.python_interpreter + if !pya + return + end + + macro_file = File.join($ut_testtmp, "test.lym") + File.open(macro_file, "w") do |file| + file.write(<<"END") + + + %description + 42 + python + +print("Python calling!") +context.value = "x" + context.value + + +END + end + + macro = RBA::Macro::new(macro_file) + assert_equal(macro.description, "%description") + assert_equal(macro.path, macro_file) + + context = RBA::Value::new + context.value = "42" + pya.define_variable("context", context) + + macro.run + assert_equal(context.value, "x42") + + end + +end + +load("test_epilogue.rb")