]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Fix gdb.python/py-startup-opt.exp with empty PYTHONDONTWRITEBYTECODE
authorTom de Vries <tdevries@suse.de>
Tue, 3 Dec 2024 21:54:23 +0000 (22:54 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 3 Dec 2024 21:54:23 +0000 (22:54 +0100)
When running test-case gdb.python/py-startup-opt.exp with empty
PYTHONDONTWRITEBYTECODE:
...
$ cd build/gdb/testsuite
$ PYTHONDONTWRITEBYTECODE= make check \
    RUNTESTFLAGS=gdb.python/py-startup-opt.exp
...
I get:
...
end^M
dont_write_bytecode is off^M
(gdb) FAIL: $exp: attr=dont_write_bytecode: testname: input 6: end
...

The problem is that the test-case expects dont_write_bytecode to be
on, which is incorrect because PYTHONDONTWRITEBYTECODE only has effect if set
to a non-empty string [1].

Fix this by correctly setting expectations in the test-case.

Tested on x86_64-linux, with:
- PYTHONDONTWRITEBYTECODE=
- PYTHONDONTWRITEBYTECODE=1
- unset PYTHONDONTWRITEBYTECODE

Approved-By: Tom Tromey <tom@tromey.com>
[1] https://docs.python.org/3/using/cmdline.html#envvar-PYTHONDONTWRITEBYTECODE

gdb/testsuite/gdb.python/py-startup-opt.exp

index cf2a2cf6768fa89b4bac2fa11640a90e4d3a488c..014aff5725a62421b954fd6cd0b6443c660ffb49 100644 (file)
@@ -78,8 +78,9 @@ proc test_python_settings { exp_state } {
        # all GDB developers some will test GDB with this environment
        # variable unset.
        if { $attr == "dont_write_bytecode" \
-                && $exp_state == "off"
-                && [info exists ::env(PYTHONDONTWRITEBYTECODE)] } {
+                && $exp_state == "off" \
+                && [info exists ::env(PYTHONDONTWRITEBYTECODE)] \
+                && $::env(PYTHONDONTWRITEBYTECODE) != "" } {
            set answer "on"
        } else {
            set answer $exp_state