Skip to content

BuildReports: Add test report log#1417

Open
ysangkok wants to merge 3 commits into
masterfrom
test-report-log
Open

BuildReports: Add test report log#1417
ysangkok wants to merge 3 commits into
masterfrom
test-report-log

Conversation

@ysangkok

@ysangkok ysangkok commented Jul 17, 2025

Copy link
Copy Markdown
Member

The test report log contains the actual output emitted by the test-suite
in a given Cabal package.

The test log only contains the logs of the build of the test.

Fixes #1397.

Demo

image

These were the logs as emitted by cabal run exe:hackage-build -- build testpkg -v:

Downloading
http://localhost:8080/package/testpkg-0.4.0.1/testpkg-0.4.0.1.tar.gz
Unpacking to testpkg-0.4.0.1/
Building testpkg-0.4.0.1
cabal
--config-file=/home/janus/flipstone/hackage-server/build-cache/cabal-config
v1-install --enable-documentation
--htmldir=/home/janus/flipstone/hackage-server/build-cache/tmp-install/haddocks/$pkgid-docs
--disable-optimization --ghc-option -O0 --disable-library-for-ghci
--package-db=clear --package-db=global
--package-db=/home/janus/flipstone/hackage-server/build-cache/tmp-install/packages.db
--reinstall --force-reinstalls
--haddock-html-location=/package/$pkg-$version/docs
--haddock-contents-location=/package/$pkg-$version --haddock-hyperlink-source
--prefix=/home/janus/flipstone/hackage-server/build-cache/tmp-install
--build-summary=/home/janus/flipstone/hackage-server/build-cache/tmp-install/reports/$pkgid.report
--report-planning-failure --haddock-html --haddock-hoogle
--haddock-option=--quickjump testpkg-0.4.0.1
Build results for testpkg-0.4.0.1:
/home/janus/flipstone/hackage-server/build-cache/results/testpkg-0.4.0.1.report
/home/janus/flipstone/hackage-server/build-cache/results/testpkg-0.4.0.1-docs.tar.gz
/home/janus/flipstone/hackage-server/build-cache/results/testpkg-0.4.0.1.log
Testing testpkg-0.4.0.1
cabal
--config-file=/home/janus/flipstone/hackage-server/build-cache/cabal-config
v2-test all --enable-coverage
--test-log=/home/janus/flipstone/hackage-server/build-cache/tmp-install/reports/testpkg-0.4.0.1.test
--test-show-details=never --disable-optimization
Test results for testpkg-0.4.0.1:
/home/janus/flipstone/hackage-server/build-cache/results/testpkg-0.4.0.1.test

Cabal file fragment:

test-suite simple
    main-is: Main.hs
    hs-source-dirs: test
    type: exitcode-stdio-1.0
    build-depends: base >=4 && <5
    default-language: Haskell2010

Main.hs (of test-suite) contents:

main = putStrLn "this is printed from custom test suite"

The test report log contains the actual output emitted by the test-suite
in a given Cabal package.

The test log only contains the logs of the *build* of the test.
@gbaz

gbaz commented Jul 17, 2025

Copy link
Copy Markdown
Contributor

this looks good to me. @bgamari i think we'll need to deploy the builder and the main hackage in sync for this... when you get time, take a look and then we can coordinate?

@ysangkok

ysangkok commented Aug 6, 2025

Copy link
Copy Markdown
Member Author

I tried testing the migration locally, and I am getting an error with Acid.Core "too few bytes". So there must be some problem with this PR, or maybe it is exposing an existing issue... I will report back if I find out what the problem is. I think I'll try to write a unit test for this.

@ysangkok

ysangkok commented Aug 8, 2025

Copy link
Copy Markdown
Member Author

I've done some migration testsusing the following REPL code:

ghci> :set -XScopedTypeVariables 
ghci> :m +Distribution.Server.Features.BuildReports.BuildReports Data.Acid.Core Data.SafeCopy Data.Map Test.QuickCheck Data.Either
ghci> b :: PkgBuildReports_v4  <- generate arbitrary
ghci> isRight (serialiserDecode safeCopySerialiser (serialiserEncode safeCopySerialiser b) :: Either String PkgBuildReports)
True

I still haven't discovered any issues...

@ysangkok

Copy link
Copy Markdown
Member Author

@gbaz Do you have any ideas for how to advance this? I'd be curious to know if you can reproduce my issue with your local instance.

@sol sol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I understand --test-show-details=always is a much easier (one line) fix that does not require a data migration.

@sol sol left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I understand --test-show-details=always is a much easier (one line) fix that does not require a data migration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Issues with test runner configuration

3 participants