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