swig/Examples/test-suite/ruby/ruby_global_immutable_vars_cpp_runme.rb
Thomas Reitmayr 18a3ef3911 Fix code generated for Ruby global variables
This commit fixes swig#1653 by creating a Ruby virtual variable
for a C/c++ global variable when SWIG is invoked with the
-globalmodule option.
2019-10-27 21:41:03 +01:00

47 lines
1.1 KiB
Ruby

#!/usr/bin/env ruby
#
# C++ version of ruby_global_immutable_vars_runme.rb.
#
require 'swig_assert'
require 'ruby_global_immutable_vars_cpp'
# first check if all variables can be read
swig_assert_each_line( <<EOF )
$default_mutable_var == 40
$global_immutable_var == 41
$specific_mutable_var == 42
$global_mutable_var == 43
$specific_immutable_var == 44
EOF
# check that all mutable variables can be modified
swig_assert_each_line( <<EOF )
$default_mutable_var = 80
$default_mutable_var == 80
$specific_mutable_var = 82
$specific_mutable_var == 82
$global_mutable_var = 83
$global_mutable_var == 83
EOF
# now check that immutable variables cannot be modified
had_exception = false
begin
$global_immutable_var = 81
rescue NameError => e
had_exception = true
end
swig_assert(had_exception, nil,
"$global_immutable_var is writable (expected to be immutable)")
had_exception = false
begin
$specific_immutable_var = 81
rescue NameError => e
had_exception = true
end
swig_assert(had_exception, nil,
"$specific_immutable_var is writable (expected to be immutable)")