Skip to content

Commit 699f9aa

Browse files
Merge pull request #139 from dreamer-coding/meson_180
2 parents d26bd68 + 9fdff1e commit 699f9aa

File tree

14 files changed

+205
-202
lines changed

14 files changed

+205
-202
lines changed

.github/ciimage/Dockerfile.debian

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ RUN apt-get update && \
2525
rm -rf /var/lib/apt/lists/*
2626

2727
# Install Meson and Ninja using pip
28-
RUN python3 -m pip install --no-cache-dir meson==1.3.0 ninja==1.10.2 --break-system-packages
28+
RUN python3 -m pip install --no-cache-dir meson==1.8.0 ninja==1.10.2 --break-system-packages
2929

3030
# Set environment variables
3131
ENV CC=clang \

.github/workflows/conan_ci.yml

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
name: Conan CI
22

33
on:
4+
schedule:
5+
- cron: '15 21 * * *'
46
push:
57
branches:
6-
- main
8+
# Match branches with version numbers like 1.2.8, 2.0.0, etc.
9+
- '[0-9]+.[0-9]+.[0-9]+'
10+
tags:
11+
- 'v*' # Tag releases like v1.2.8
712
pull_request:
813
branches:
9-
- main
14+
- '[0-9]+.[0-9]+.[0-9]+'
1015

1116
jobs:
1217
build:
@@ -21,15 +26,27 @@ jobs:
2126
with:
2227
python-version: "3.11"
2328

29+
- name: Cache pip
30+
uses: actions/cache@v3
31+
with:
32+
path: ~/.cache/pip
33+
key: ${{ runner.os }}-pip
34+
35+
- name: Cache Conan
36+
uses: actions/cache@v3
37+
with:
38+
path: ~/.conan
39+
key: ${{ runner.os }}-conan
40+
2441
- name: Install system packages
2542
run: |
26-
sudo apt-get update
27-
sudo apt-get install -y ninja-build pkg-config python3-pip build-essential
43+
sudo apt update
44+
sudo apt install -y ninja-build pkg-config python3-pip build-essential
2845
2946
- name: Install Meson and Conan
3047
run: |
3148
pip install --upgrade pip
32-
pip install meson==1.3.2 conan==2.3.2
49+
pip install meson==1.8.0 conan==2.3.2
3350
3451
- name: Detect Conan profile
3552
run: conan profile detect
@@ -39,11 +56,11 @@ jobs:
3956

4057
- name: Build
4158
run: |
42-
meson setup builddir
43-
meson compile -C builddir
59+
meson setup -Dwith_test=enabled builddir
60+
meson compile -C builddir -v
4461
4562
- name: Test
46-
run: meson test -C builddir
63+
run: meson test -C builddir -v
4764

4865
- name: Package
49-
run: conan create . --name=pizza_test --version=1.2.7
66+
run: conan create . --name=pizza_test --version=1.2.8

.github/workflows/crossfile_ci.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
name: Crossfile CI
22

33
on:
4+
schedule:
5+
- cron: '15 21 * * *'
46
push:
5-
paths:
6-
- "**.c"
7-
- "**.h"
8-
- "**.py"
9-
- "**.build"
10-
- "**.options"
7+
branches:
8+
- main
119
pull_request:
12-
paths:
13-
- "**.c"
14-
- "**.h"
15-
- "**.py"
16-
- "**.build"
17-
- "**.options"
10+
branches:
11+
- main
1812

1913
jobs:
2014
build_cross:

.github/workflows/meson_ci.yml

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,22 @@
11
name: Meson CI
22

33
on:
4+
schedule:
5+
- cron: '15 21 * * *'
46
push:
5-
paths:
6-
- "**.c"
7-
- "**.h"
8-
- "**.py"
9-
- "**.build"
10-
- "**.options"
7+
branches:
8+
- main
119
pull_request:
12-
paths:
13-
- "**.c"
14-
- "**.h"
15-
- "**.py"
16-
- "**.build"
17-
- "**.options"
10+
branches:
11+
- main
1812

1913
jobs:
2014
build_msvc:
2115
name: Building on MSVC ${{ matrix.msvc_version }}
2216
runs-on: windows-latest
2317
strategy:
2418
matrix:
25-
msvc_version: [2015, 2017, 2019, 2022, 2025]
19+
msvc_version: [2019, 2022, 2025]
2620
steps:
2721
- name: Checkout code
2822
uses: actions/checkout@v5
@@ -39,11 +33,7 @@ jobs:
3933
run: |
4034
python -m pip install --upgrade pip
4135
python -m pip install meson ninja
42-
if ($env:msvc_version -eq "2015") {
43-
choco install visualstudio2015buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --includeRecommended --includeOptional --passive"
44-
} elseif ($env:msvc_version -eq "2017") {
45-
choco install visualstudio2017buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive"
46-
} elseif ($env:msvc_version -eq "2019") {
36+
if ($env:msvc_version -eq "2019") {
4737
choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive"
4838
} elseif ($env:msvc_version -eq "2022") {
4939
choco install visualstudio2022buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive"
@@ -62,9 +52,6 @@ jobs:
6252
build_macosx:
6353
name: Building on macOS with Xcode ${{ matrix.xcode_version }}
6454
runs-on: macos-latest
65-
strategy:
66-
matrix:
67-
xcode_version: ["15.0", "15.1", "15.2", "15.3", "15.4"]
6855
steps:
6956
- name: Checkout code
7057
uses: actions/checkout@v5
@@ -76,9 +63,16 @@ jobs:
7663
with:
7764
python-version: '3.12'
7865

66+
- name: Install Xcode Command Line Tools
67+
run: |
68+
if ! xcode-select -p &>/dev/null; then
69+
sudo xcode-select --install
70+
until xcode-select -p &>/dev/null; do sleep 5; done
71+
fi
72+
7973
- name: Install Xcode
80-
run: sudo xcode-select --switch /Applications/Xcode_${{ matrix.xcode_version }}.app
81-
74+
run: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
75+
8276
- name: Install Meson and Ninja
8377
run: |
8478
python -m pip install meson ninja

README.md

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,29 @@ Pizza Test is a smart unit testing framework developed by Fossil Logic for C and
1818
| **Tag-Based Test Filtering** | Execute subsets of tests based on custom tags for better test suite organization and faster iteration. |
1919
| **Detailed Performance Insights** | In-depth statistics on execution time, memory usage, and test stability to help improve code performance and reliability. |
2020

21-
---
21+
## Command-Line
22+
23+
The Pizza Test CLI provides an efficient way to run and manage tests directly from the terminal. Here are the available commands and options:
24+
25+
### Commands and Options
26+
27+
| Command | Description | Notes |
28+
|-----------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
29+
| `--version` | Show version information. | Useful for verifying the version of the tool in use. |
30+
| `--dry-run` | Perform a dry run without executing commands. | Ideal for verifying test selection criteria before actual execution. |
31+
| `--host` | Show information about the current host. | Useful for looking up the system you are running tests on. |
32+
| `--help` | Show this help message. | Provides a quick reference for all available commands. |
33+
| `run` | Execute tests with optional parameters. | Supports additional options like `--fail-fast` and `--repeat`. |
34+
| `filter` | Filter tests based on criteria. | Options include filtering by test name, suite name, or tags. |
35+
| `sort` | Sort tests by specified criteria. | Allows sorting in ascending or descending order. |
36+
| `shuffle` | Shuffle tests with optional parameters. | Includes options for specifying a seed or shuffle criteria. |
37+
| `show` | Show test cases with optional parameters. | Useful for listing and inspecting available test cases. |
38+
| `color=<mode>` | Set color mode (`enable`, `disable`, `auto`). | Enhances readability in supported terminals. |
39+
| `config=<file>` | Specify a configuration file (must be `pizza_test.ini`). | Allows loading custom settings for test execution. |
40+
| `theme=<name>` | Set the theme (`fossil`, `catch`, `doctest`, etc.). | Customizes the appearance of test output. |
41+
| `timeout=<seconds>` | Set the timeout for commands (default: 60 seconds). | Ensures commands do not exceed the specified duration, helping to identify long-running tests.|
2242

23-
Pizza Test is a first-class citizen of the **Truthful Intelligence** ecosystem, using **Jellyfish AI** as its foundation for test integrity, learning from outcomes over time, and enabling tamper-proof validation across distributed development environments.
43+
> **Note:** In addition to the `--help` option, Pizza Test CLI supports `--help` and subcommand-specific help commands. You can use `<command> --help` (e.g., `run --help`) to display detailed usage information for any command or subcommand. This provides flexible ways to access documentation directly from the terminal.
2444
2545
---
2646

@@ -29,15 +49,25 @@ Pizza Test is a first-class citizen of the **Truthful Intelligence** ecosystem,
2949
To get started with Pizza Test, ensure you have the following installed:
3050

3151
- **Meson Build System**: If you don’t have Meson installed, follow the installation instructions on the official [Meson website](https://mesonbuild.com/Getting-meson.html).
52+
- **Conan Package Manager**: If you prefer using Conan, ensure it is installed by following the instructions on the official [Conan website](https://docs.conan.io/en/latest/installation.html).
3253

3354
---
3455

35-
### Adding Pizza Test Dependency
56+
### Adding Dependency
57+
58+
#### Adding via Conan GitHub repository
59+
60+
Conan can install packages directly from a GitHub repository if it contains a valid conanfile.py.
61+
62+
```bash
63+
conan install git+https://github.com/fossillogic/fossil-test.git#v1.2.7 --name pizza_test --build=missing
64+
```
3665

3766
#### Adding via Meson Build System
3867

3968
1. **Install Meson Build System**:
40-
Install Meson version `1.3` or newer:
69+
Install Meson version `1.8.0` or newer:
70+
4171
```bash
4272
python -m pip install meson # To install Meson
4373
python -m pip install --upgrade meson # To upgrade Meson
@@ -52,53 +82,21 @@ python -m pip install --upgrade meson # To upgrade Meson
5282
# ======================
5383
[wrap-git]
5484
url = https://github.com/fossillogic/fossil-test.git
55-
revision = v1.2.7
85+
revision = v1.2.8
5686

5787
[provide]
5888
fossil-test = fossil_test_dep
5989
```
6090

6191
3. **Integrate the Dependency**:
6292
In your `meson.build` file, integrate Fossil Test by adding the following line:
93+
6394
```meson
6495
dep = dependency('fossil-test')
6596
```
6697

67-
#### Adding via Conan GitHub repository
68-
69-
Conan can install packages directly from a GitHub repository if it contains a valid conanfile.py.
70-
71-
```bash
72-
# Install from GitHub (replace branch/tag if needed)
73-
conan install git+https://github.com/fossillogic/fossil-test.git#v1.2.7 --name pizza_test --build=missing
74-
```
75-
7698
**Note**: For the best experience, always use the latest release of Pizza Test. Visit the [Pizza Test Releases](https://github.com/pizzalogic/pizza-test/releases) page for the latest versions.
7799

78-
## Pizza Test CLI Usage
79-
80-
The Pizza Test CLI provides an efficient way to run and manage tests directly from the terminal. Here are the available commands and options:
81-
82-
### Commands and Options
83-
84-
| Command | Description | Notes |
85-
|-----------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
86-
| `--version` | Show version information. | Useful for verifying the version of the tool in use. |
87-
| `--dry-run` | Perform a dry run without executing commands. | Ideal for verifying test selection criteria before actual execution. |
88-
| `--host` | Show information about the current host. | Useful for looking up the system you are running tests on. |
89-
| `--help` | Show this help message. | Provides a quick reference for all available commands. |
90-
| `run` | Execute tests with optional parameters. | Supports additional options like `--fail-fast` and `--repeat`. |
91-
| `filter` | Filter tests based on criteria. | Options include filtering by test name, suite name, or tags. |
92-
| `sort` | Sort tests by specified criteria. | Allows sorting in ascending or descending order. |
93-
| `shuffle` | Shuffle tests with optional parameters. | Includes options for specifying a seed or shuffle criteria. |
94-
| `show` | Show test cases with optional parameters. | Useful for listing and inspecting available test cases. |
95-
| `color=<mode>` | Set color mode (`enable`, `disable`, `auto`). | Enhances readability in supported terminals. |
96-
| `config=<file>` | Specify a configuration file (must be `pizza_test.ini`). | Allows loading custom settings for test execution. |
97-
| `theme=<name>` | Set the theme (`fossil`, `catch`, `doctest`, etc.). | Customizes the appearance of test output. |
98-
| `timeout=<seconds>` | Set the timeout for commands (default: 60 seconds). | Ensures commands do not exceed the specified duration, helping to identify long-running tests.|
99-
100-
> **Note:** In addition to the `--help` option, Pizza Test CLI supports `--help` and subcommand-specific help commands. You can use `<command> --help` (e.g., `run --help`) to display detailed usage information for any command or subcommand. This provides flexible ways to access documentation directly from the terminal.
101-
102100
## Configure Build Options
103101

104102
To configure the build system with testing enabled, use the following command:

code/logic/common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
// macro definitions
2020
// *****************************************************************************
2121

22-
#define FOSSIL_PIZZA_VERSION "1.2.7"
22+
#define FOSSIL_PIZZA_VERSION "1.2.8"
2323
#define FOSSIL_PIZZA_AUTHOR "Fossil Logic"
2424
#define FOSSIL_PIZZA_WEBSITE "https://fossillogic.com"
2525

0 commit comments

Comments
 (0)