-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
The instruction for sqlite-with-gcov task is ambiguous, leading agents to a reasonable but incorrect interpretation.
Current Instruction
Compile SQLite in /app/sqlite with gcov instrumentation and make it available in the PATH.
The Ambiguity
"Compile SQLite in /app/sqlite" can be interpreted two ways:
| Interpretation | Meaning | Typical Approach |
|---|---|---|
| A: "in" = build directory | Build inside /app/sqlite | cd /app/sqlite && ./configure && make |
| B: "in" = install prefix | Install SQLite to /app/sqlite | ./configure --prefix=/app/sqlite && make install |
Interpretation B is natural because:
- "make it available in the PATH" suggests installation
- Standard software installation uses
./configure --prefix=X && make install - Sources are typically extracted to
/tmp, built there, then installed to target
Verifier Expectation
The verifier expects interpretation A — it checks for .gcno and .gcda files inside /app/sqlite:
# From tests/test_outputs.py
for root, _, files in os.walk("/app/sqlite"):
gcno_files.extend([...f for f in files if f.endswith(".gcno")])This only works if the build directory is /app/sqlite, not just the install prefix.
Agent Behavior
An agent (Claude Sonnet 4) chose interpretation B:
- Extracted source to
/tmp/sqlite - Configured with
--prefix=/app/sqlite - Built with
CFLAGS="--coverage"— correct gcov flags - Ran
make installto/app/sqlite/bin/ - Verified binary has 7476 gcov symbols — instrumentation IS present
- Cleaned up
/tmp/sqlite(which contained.gcnofiles)
The binary is gcov-instrumented, but .gcno files aren't in /app/sqlite.
Suggested Fix
Make the instruction explicit about the build directory requirement:
Compile SQLite with build directory at /app/sqlite with gcov instrumentation and make it available in the PATH. The .gcno files from compilation must remain in /app/sqlite.
Or alternatively, update the verifier to check for gcov instrumentation in a way that doesn't depend on build directory location (e.g., check for gcov symbols in the binary).