python / python/cpython

test_ctypes.test_find seems to pass when it shouldn't

Abierto
#151,089 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

tests topic-ctypes type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug report

Bug description:

I have a container that has no compiler but does have ld:

$ gcc --version
-sh: gcc: command not found
$ ld --version
GNU ld (GNU Binutils) 2.46

If I run the test_ctypes tests, specifically test_find_library_with_gcc which looks like it will need gcc, it surprisingly passes:

$ python3 -mtest -v test_ctypes.test_find
== CPython 3.14.5 (main, May 10 2026, 10:21:34) [GCC 16.1.0]
== Linux-6.18.33-yocto-standard-aarch64-with-glibc2.43 little-endian
== Python build: release shared
== cwd: /tmp/test_python_worker_332æ
== CPU count: 4
== encodings: locale=ANSI_X3.4-1968 FS=utf-8
== resources: all test resources are disabled, use -u option to unskip tests

test_find (test.test_ctypes.test_find.FindLibraryAndroid.test_find) ... skipped 'Test only valid for Android'
test_find_nothing_with_wrong_ld_library_path (test.test_ctypes.test_find.FindLibraryEmscripten.test_find_nothing_with_wrong_ld_library_path) ... skipped 'Test only valid for Emscripten'
test_find_nothing_without_ld_library_path (test.test_ctypes.test_find.FindLibraryEmscripten.test_find_nothing_without_ld_library_path) ... skipped 'Test only valid for Emscripten'
test_find_wasm_file_with_so_extension (test.test_ctypes.test_find.FindLibraryEmscripten.test_find_wasm_file_with_so_extension) ... skipped 'Test only valid for Emscripten'
test_find_wasm_file_with_wasm_extension (test.test_ctypes.test_find.FindLibraryEmscripten.test_find_wasm_file_with_wasm_extension) ... skipped 'Test only valid for Emscripten'
test_ignore_non_wasm_file (test.test_ctypes.test_find.FindLibraryEmscripten.test_ignore_non_wasm_file) ... skipped 'Test only valid for Emscripten'
test_find_library_with_gcc (test.test_ctypes.test_find.FindLibraryLinux.test_find_library_with_gcc) ... ok
test_find_library_with_ld (test.test_ctypes.test_find.FindLibraryLinux.test_find_library_with_ld) ... ok
test_find_on_libpath (test.test_ctypes.test_find.FindLibraryLinux.test_find_on_libpath) ... skipped 'gcc, needed for test, not available'
test_gh114257 (test.test_ctypes.test_find.FindLibraryLinux.test_gh114257) ... ok
OpenGL libraries:
	 ('GL', None)
	 ('GLU', None)
	 ('gle', None)
test_gl (test.test_ctypes.test_find.Test_OpenGL_libs.test_gl) ... skipped 'lib_gl not available'
test_gle (test.test_ctypes.test_find.Test_OpenGL_libs.test_gle) ... skipped 'lib_gle not available'
test_glu (test.test_ctypes.test_find.Test_OpenGL_libs.test_glu) ... skipped 'lib_glu not available'
test_shell_injection (test.test_ctypes.test_find.Test_OpenGL_libs.test_shell_injection) ... ok

Specifically:

test_find_library_with_gcc (test.test_ctypes.test_find.FindLibraryLinux.test_find_library_with_gcc) ... ok
CPython versions tested on:

3.14

Operating systems tested on:

Linux

Linked PRs
  • gh-151231

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza ejecutando python3 -mtest -v test_ctypes.test_find en el entorno Linux indicado y céntrate en test_ctypes.test_find.FindLibraryLinux.test_find_library_with_gcc. Comprueba por qué esta prueba informa ok sin gcc; después, verifica que su resultado refleje correctamente la disponibilidad del compilador y que la prueba específica pase con el comportamiento previsto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
linux, python
Área
operating-systems, testing-qa
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.