Skip to content

llvmlibc.test_fcntl_open regression #26740

@juj

Description

@juj

I know that the llvmlibc suite is experimental and not developed day-to-day, so not expected to pass at all times.

While looking at other red tests, I noticed that the following tests fail on llvmlibc:

http://clbri.com:8010/api/v2/logs/393341/raw_inline

FAIL: test_fcntl_open_nodefs (test_core.llvmlibc.test_fcntl_open_nodefs)
FAIL: test_fcntl_open (test_core.llvmlibc.test_fcntl_open)
FAIL: test_fcntl_open_rawfs (test_core.llvmlibc.test_fcntl_open_rawfs)

These are probably from the same cause.

C:\emsdk\emscripten\main>test\runner llvmlibc.test_fcntl_open
Running 1 tests
[1/1] test_fcntl_open (test_core.llvmlibc.test_fcntl_open) ... FAIL

Stdout:
(test did not pass in JS engine: ['C:/emsdk/node/22.16.0_64bit/bin/node.exe'])

======================================================================
FAIL: test_fcntl_open (test_core.llvmlibc.test_fcntl_open)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\emsdk\emscripten\main\test\common.py", line 377, in resulting_test
    return func(self, *args)
  File "C:\emsdk\emscripten\main\test\decorators.py", line 302, in metafunc
    return func(self, *args, **kwargs)
  File "C:\emsdk\emscripten\main\test\decorators.py", line 43, in decorated
    return func(self, *args, **kwargs)
  File "C:\emsdk\emscripten\main\test\test_core.py", line 5739, in test_fcntl_open
    self.do_run_in_out_file_test('fcntl/test_fcntl_open.c')
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\emsdk\emscripten\main\test\common.py", line 1397, in do_run_in_out_file_test
    output = self._build_and_run(srcfile, expected, **kwargs)
  File "C:\emsdk\emscripten\main\test\common.py", line 1448, in _build_and_run
    self.assertContained(o, js_output, regex=regex)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\emsdk\emscripten\main\test\common.py", line 1103, in assertContained
    self.fail("Expected to find '%s' in '%s', diff:\n\n%s\n%s" % (
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      limit_size(values[0]), limit_size(string), limit_size(diff),
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      additional_info,
      ^^^^^^^^^^^^^^^^
    ))
    ^^
AssertionError: Expected to find 'EXISTING FILE 0,0
success: 1
errno: Success
st_mode: 0100000

[... snip ...]

CREAT
success: 1
errno: Success
error: Success
(not all output shown. See `limit_size`)
', diff:

--- expected
+++ actual
@@ -484,7 +484,7 @@

 EXISTING LINK 0,1
 success: 0
-errno: Symbolic link loop
+errno: Too many levels of symbolic links

 EXISTING FILE 1,0
 success: 1
@@ -972,7 +972,7 @@

 EXISTING LINK 1,1
 success: 0
-errno: Symbolic link loop
+errno: Too many levels of symbolic links

 EXISTING FILE 2,0
 success: 1
@@ -1460,8 +1460,10 @@

 EXISTING LINK 2,1
 success: 0
-errno: Symbolic link loop
+errno: Too many levels of symbolic links

 CREAT
 success: 1
-
+errno: Success
+error: Success
+

Stdout:
(test did not pass in JS engine: ['C:/emsdk/node/22.16.0_64bit/bin/node.exe'])

----------------------------------------------------------------------
Ran 1 test in 1.015s

FAILED (failures=1)

Bisected down to #26315

f4eb1453e44f21f63022ad496e9fec5aff581488 is the first bad commit
commit f4eb1453e44f21f63022ad496e9fec5aff581488
Author: Sam Clegg <sbc@chromium.org>
Date:   Fri Feb 20 16:50:44 2026 -0800

    [test] Use strerror in test_fcntl_open (#26315)

 test/fcntl/test_fcntl_open.c   |  10 +-
 test/fcntl/test_fcntl_open.out | 589 ++++++++++++++++++++---------------------
 2 files changed, 299 insertions(+), 300 deletions(-)

The difference errno vs error seems like maybe just a test expectation being out of date?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions