leanprover / leanprover/lean4

Interleaved expected output in leantest_csimpAttr.lean?

Open
#1,451 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

P-medium
Dominant language
Lean
Stars
9.2k
Forks
990
Avg merge
1d 17h
Merged PRs (30d)
175

Description

Prerequisites
  • Put an X between the brackets on this line if you have done all of the following:
    • Checked that your issue isn't already filed.
    • Reduced the issue to a self-contained, reproducible test case.
Description

~/lean4/tests/lean/csimpAttr.lean fails on windows under MSys2.

Steps to Reproduce

Run the unit tests from stage1 with ctest -j10 -E leanlaketest_git

Expected behavior:

100% pass rate

Actual behavior:

The following tests FAILED:
188 - leantest_csimpAttr.lean (Failed)
479 - leantest_updateExprIssue.lean (Failed)

The checked in C:\msys64\home\clovett\git\lean4\tests\lean\csimpAttr.lean.expected.out has garbled interleaved output???

[init]
def f (x_1 : obj) : obj :=
  let x_2 : obj := Nat.add x_1 x_1;
  let x_3 : obj := Nat.add x_2 x_2;
  ret x_3csimpAttr.lean:7:2-7:7: error: invalid 'csimp' theorem, only constant replacement theorems (e.g., `@f = @g`) are currently supported.

but on Windows we get nice clean orderly output:

csimpAttr.lean:7:2-7:7: error: invalid 'csimp' theorem, only constant replacement theorems (e.g., `@f = @g`) are currently supported.

[init]
def f (x_1 : obj) : obj :=
  let x_2 : obj := Nat.add x_1 x_1;
  let x_3 : obj := Nat.add x_2 x_2;
  ret x_3

And leantest_updateExprIssue.lean seems to fail because on windows there is one more newline at the end of the produced output. Perhaps the comparer should strip trailing newlines?

Reproduces how often: 100%

Versions

Lean (version 4.0.0, commit e90e144eadc5, Release)

Additional Information

Any additional information, configuration or data that might be necessary to reproduce the issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running ctest -j10 -E leanlaketest_git on Windows/MSys2 and inspect tests/lean/csimpAttr.lean, its expected output, and leantest_updateExprIssue.lean. Compare the produced output with the checked-in expectations; done means both tests pass consistently without interleaved output or platform-specific trailing-newline differences.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.