diff --git a/src/pya/pya/pyaUtils.cc b/src/pya/pya/pyaUtils.cc index 0bded8e92..65f1d7678 100644 --- a/src/pya/pya/pyaUtils.cc +++ b/src/pya/pya/pyaUtils.cc @@ -119,7 +119,9 @@ void check_error () int status = 0; if (exc_value) { tl::Variant st = python2c (exc_value.get ()); - status = st.to_int (); + if (st.can_convert_to_int ()) { + status = st.to_int (); + } } throw tl::ExitException (status); diff --git a/testdata/klayout_main/main.rb b/testdata/klayout_main/main.rb index f867f4339..7b452d376 100644 --- a/testdata/klayout_main/main.rb +++ b/testdata/klayout_main/main.rb @@ -201,6 +201,14 @@ class KLayoutMain_TestClass < TestBase out = `#{self.klayout_bin} -z -r #{File.join(File.dirname(__FILE__), "test12.rb")} 2>&1` assert_equal(out, "Before exit()\n") + # sys.exit(0) - Python + out = `#{self.klayout_bin} -z -r #{File.join(File.dirname(__FILE__), "test12s.py")} 2>&1` + assert_equal(out, "Before exit()\n") + + # quit() - Python (issue #1565) + out = `#{self.klayout_bin} -z -r #{File.join(File.dirname(__FILE__), "test12q.py")} 2>&1` + assert_equal(out, "Before quit()\n") + end end