Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Suite: `make -C <repo> test` fails [137] because print-SRC_V_asan-gfx output includes make's "Entering directory" banner

未关闭 适合新手
#1,340 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
88/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
c, shell

调研方向

从 tests/test_asan_gfx.sh 和 tests/test_leak_guard.sh 开始,尤其关注 print-* readers,并使用 MAKEFLAGS=w 重现该问题。验证两个 readers 接收到的只有源文件名,然后运行 make -C test 并确认 section [137] 通过;添加针对 directory-banner 输出的请求检查。

由索引模型根据 Issue 内容生成。

描述

area:lint-tooling bug

tests/test_asan_gfx.sh (suite section [137]) reads its source list with

SRCS=$(make -C "$ROOT" -s print-SRC_V_asan-gfx 2>/dev/null)

When the suite itself was started as make -C /path/to/EigenScript test, the outer make puts w (--print-directory) into MAKEFLAGS. The nested make inherits it, and -s does not suppress the banner, which goes to stdout. SRCS then contains make[1]: Entering directory '/path' / Leaving directory words, and the compile fails at link time:

/usr/bin/ld: cannot find make[1]:: No such file or directory
/usr/bin/ld: cannot find Entering: No such file or directory
/usr/bin/ld: cannot find '/home/user/wt1243': No such file or directory
...
  FAIL: asan-gfx build failed
  FAIL: test_asan_gfx.sh exited 1 without completing — section verdict is not trustworthy (#988)

The nested call in isolation, measured on main 38a20d5:

$ make -s print-SRC_V_asan-gfx | head -c 60
src/eigenscript.c src/lexer.c src/parser.c src/builtins.c
$ MAKEFLAGS=w make -C . -s print-SRC_V_asan-gfx | head -c 60
make: Entering directory '/home/user/wt1243'
src/eigens

cd <repo> && make test passes [137] (15/15). make -C <repo> test fails it deterministically (twice in a row), and the reported failure points at the gfx corpus rather than at the invocation. Found while gating an unrelated PR (#1330) from a different working directory.

tests/test_leak_guard.sh:51 reads make -s print-SOURCES the same way; it is exposed to the same inherited flag whenever it runs under a make that has w set.

Done when

  • Both readers get a clean list whatever MAKEFLAGS the suite inherits: pass --no-print-directory, or clear MAKEFLAGS/MAKELEVEL for that call.
  • make -C <repo> test passes [137] on a tree where cd <repo> && make test passes.
  • A check that fails if a print-* reader's output contains Entering directory. For example, run the reader with MAKEFLAGS=w in the environment and assert that every word ends in .c.
主要语言
C
星标
3
派生
7
平均合并
4 小时 15 分钟
30 天内合并 PR
106

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

InauguralSystems/EigenScript 的其他 Issue

查看 InauguralSystems/EigenScript 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。