gdb/testsuite: test get/set value of unregistered Guile parameter

When creating a parameter in Guile, you have to create it using
make-parameter and then register it with GDB with register-parameter!.
In between, it's still possible (though not documented) to set the
parameter's value.  I broke this use case by mistake while writing this
series, so thought it would be good to have a test for it.

I suppose that people could use this "feature" to give their parameter
an initial value, even though make-parameter has an initial-value
parameter for this.  Nevertheless, changing this behavior could break
some scripts, which is why I think it's important for it to be tested.

Change-Id: I5b2103e3cec0cfdcccf7ffb00eb05fed8626e66d
This commit is contained in:
Simon Marchi 2021-07-13 21:07:32 -04:00
parent 5538b03c98
commit 3e1e8561c3

View File

@ -176,6 +176,14 @@ with_test_prefix "test-restricted-param" {
gdb_test "guile (register-parameter! (make-parameter \"height\"))" \
"ERROR.*is already defined.*" "error registering existing parameter"
# Test printing and setting the value of an unregistered parameter.
gdb_test "guile (print (parameter-value (make-parameter \"foo\")))" \
"= #f"
gdb_test "guile (define myparam (make-parameter \"foo\"))"
gdb_test_no_output "guile (set-parameter-value! myparam #t)"
gdb_test "guile (print (parameter-value myparam))" \
"= #t"
# Test registering a parameter named with what was an ambiguous spelling
# of existing parameters.