mm2 / Little-CMS

A free, open source, CMM engine. It provides fast transforms between ICC profiles.
https://www.littlecms.com
MIT License
571 stars 176 forks source link

`meson test` doesn't run test suite like `make check` did in autotools build #359

Closed thesamesam closed 1 year ago

thesamesam commented 1 year ago

I'm eager to switch our build in Gentoo to the new Meson build (thanks for that!) but it looks like meson test doesn't have the same behaviour as make check did in the autotools build.

With autotools, it builds and then runs testbed, but for Meson, testbed gets built but not executed.

I can manually do:

cd testbed
"${BUILD_DIR}"/testbed/testcms

but I wasn't expecting to have to do that.

thesamesam commented 1 year ago

cc @lovell @amyspark

amyspark commented 1 year ago

No, that's certainly not expected. In meson, the command you need to run is meson test -C build. Here's a demo check:

/tmp 
❯ git clone https://github.com/mm2/Little-CMS.git
Clonando en 'Little-CMS'...
remote: Enumerating objects: 7076, done.
remote: Counting objects: 100% (2519/2519), done.
remote: Compressing objects: 100% (519/519), done.
remote: Total 7076 (delta 2105), reused 2111 (delta 1994), pack-reused 4557
Recibiendo objetos: 100% (7076/7076), 85.61 MiB | 2.27 MiB/s, listo.
Resolviendo deltas: 100% (5038/5038), listo.

/tmp took 39s 
❯ cd Little-CMS/

Little-CMS on  master is 📦 v2.15 
❯ meson setup build
The Meson build system
Version: 1.0.0
Source dir: /private/tmp/Little-CMS
Build dir: /private/tmp/Little-CMS/build
Build type: native build
Project name: Little-CMS
Project version: 2.15
C compiler for the host machine: cc (clang 13.0.0 "Apple clang version 13.0.0 (clang-1300.0.29.30)")
C linker for the host machine: cc ld64 711
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports function attribute visibility:hidden: YES 
Header "time.h" has symbol "gmtime_r" : YES 
Found pkg-config: /usr/local/bin/pkg-config (0.29.2)
Run-time dependency libjpeg found: YES 2.1.5.1
Run-time dependency libtiff-4 found: YES 4.4.0
Checking if "supports SSE2 intrinsics" compiles: YES 
Library m found: YES
Run-time dependency threads found: YES
Checking for function "pthread_mutex_lock" with dependency threads: YES 
Build targets in project: 7

Found ninja-1.11.1 at /usr/local/bin/ninja

Little-CMS on  master is 📦 v2.15 took 16s 
❯ meson test -C build
ninja: no work to do.
ninja: Entering directory `/private/tmp/Little-CMS/build'
[30/32] Compiling C object testbed/testcms.p/testcms2.c.o
../testbed/testcms2.c:9226:20: warning: unused variable 'DoZooTests' [-Wunused-variable]
    cmsInt32Number DoZooTests = 0;
                   ^
../testbed/testcms2.c:5181:16: warning: unused function 'CheckDictionary16' [-Wunused-function]
cmsInt32Number CheckDictionary16(cmsInt32Number Pass,  cmsHPROFILE hProfile)
               ^
2 warnings generated.
[32/32] Linking target testbed/testcms
1/1 testcms        OK              31.83s

Ok:                 1   
Expected Fail:      0   
Fail:               0   
Unexpected Pass:    0   
Skipped:            0   
Timeout:            0   

Full log written to /private/tmp/Little-CMS/build/meson-logs/testlog.txt
thesamesam commented 1 year ago

I'm so sorry for the bother, I was tired earlier:

[..] abi_x86_32.x86: running multilib-minimal_abi_src_test
meson test --print-errorlogs -C /var/tmp/portage/media-libs/lcms-2.15_rc1/work/lcms2-2.15rc1-abi_x86_32.x86 --num-processes 32
ninja: no work to do.
ninja: Entering directory `/var/tmp/portage/media-libs/lcms-2.15_rc1/work/lcms2-2.15rc1-abi_x86_32.x86'
ninja: no work to do.
1/1 testcms OK               9.66s

Ok:                 1
Expected Fail:      0
Fail:               0
Unexpected Pass:    0
Skipped:            0
Timeout:            0

Apologies, it works fine!