Verified Commit 6fb31d72 authored by Roman Lacko's avatar Roman Lacko
Browse files

Add Dockerfile and a primitive test

parent 2ec19a0d
Loading
Loading
Loading
Loading

Dockerfile

0 → 100644
+22 −0
Original line number Diff line number Diff line
from almalinux:10

arg cr_version="2.4.3"

run dnf update -y
run dnf install -y gcc g++ clang
run dnf install -y meson cmake
run dnf install -y libffi libffi-devel
run dnf install -y git valgrind wget

run <<EOF
mkdir -p /tmp/build
cd /tmp/build
wget https://github.com/Snaipe/Criterion/archive/refs/tags/v${cr_version}.tar.gz
tar -xf v${cr_version}.tar.gz
cd Criterion-${cr_version}
meson setup build
ninja -C build
ninja -C build install
EOF

run rm -rf /tmp/build

test/lib.c

0 → 100644
+5 −0
Original line number Diff line number Diff line
#include "lib.h"

int inc(int a) {
	return a + 1;
}

test/lib.h

0 → 100644
+7 −0
Original line number Diff line number Diff line
#pragma once
#ifndef lib_h
#define lib_h

int inc(int a);

#endif // lib_h

test/meson.build

0 → 100644
+11 −0
Original line number Diff line number Diff line
project('criterion-test', 'c')

criterion = dependency('criterion', version: '>=2.4')

test_bin = executable(meson.project_name(),
    'lib.c',
    'test.c',
    dependencies: [criterion],
)

test('test', test_bin)

test/test.c

0 → 100644
+18 −0
Original line number Diff line number Diff line
#include <criterion/criterion.h>
#include <criterion/new/assert.h>
#include <criterion/theories.h>

#include "lib.h"

Test(sanity, inc) {
	cr_assert(eq(int, inc(0), 1));
	cr_assert(eq(int, inc(1), 2));
}

TheoryDataPoints(sanity, dp) = {
	DataPoints(int, 0, 1, 2, 3, 5, 100, 1000),
};

Theory((int a), sanity, dp) {
	cr_assert(eq(int, inc(a), a + 1));
}