Commit Graph

93 Commits

Author SHA1 Message Date
Evgeny Vereshchagin
c667e09ba0 ci: pass max_total_time to libFuzzer
Since clang was updated to 9.0.1 libFuzzer has been exiting with 72
when it's run with timeout. Let's pass -max_total_time to it instead.
2020-02-18 02:29:50 +03:00
Lennart Poettering
0edd431e15 ci: add new dependencies to CI 2020-01-28 22:38:22 +01:00
Frantisek Sumsal
a3e42c468f test: unpin meson from v0.52.1
The compatibility issue in meson v0.53 has been fixed in v0.53.1, which
is already available through pip, so let's remove the pin for meson
introduced before.

Reverts: 514793658c
2020-01-25 23:14:35 +03:00
Lennart Poettering
e65f29b4c6 ci: add dependencies for repart + cryptsetup's pkcs#11 support
Let's make sure we can test systemd-repart properly

(And while we are at it, also test cryptsetup-pkcs#11)
2020-01-20 17:42:03 +01:00
Frantisek Sumsal
514793658c test: pin meson to 0.52.1 for fuzzit/fuzzbuzz
Latest meson doesn't work with older python 3.5, which is present on
Ubuntu 16.04. Let's pin in to the latest working version (0.52.1) until
we properly bump all necessary Ubuntu images to 18.04.

See: https://github.com/mesonbuild/meson/issues/6427
2020-01-08 13:56:30 +03:00
Frantisek Sumsal
14157349db travis: wait for the container to fully boot up
This avoids nasty race conditions between dnf/apt-get and unfinished
population of /tmp (among other things), as `docker exec` allows commands
to run before the system is fully booted (i.e. initializing/starting
state reported by `systemctl is-system-running`).
2019-12-31 13:15:38 +00:00
Evgeny Vereshchagin
738606e452 coverity: replace python with jq
Judging by https://travis-ci.org/systemd/systemd/jobs/604425785
(where the script failed with "tools/coverity.sh: line 45: python: command not found")
python-unversioned-command is no longer installed by default with python2.
Given that it's not the first time python has vanished and it's not clear
what exactly should be installed to make sure it's there, let's just use jq instead.
2019-10-30 09:17:04 +01:00
Evgeny Vereshchagin
807f9a1700 fuzzit: export the API key instead of using auth
"We removed some cahing related code that auth used and caused problems"
2019-09-12 14:02:21 +03:00
Evgeny Vereshchagin
20c9c29c68 travis: switch to the latest version of the fuzzit CLI
I was informed that fuzzit-1.1 is going to be deprecated soon. Generally
the latest version isn't recommened because it's still in beta and theoretically
might be backwards incompatible but let's try rolling forward to avoid PRs
like this going forward. We can always roll it back :-)
2019-09-07 00:06:36 +03:00
Evgeny Vereshchagin
64d0f7042d travis: protect the systemd organization on Fuzzit from forks
Now that v243 is out, the script has been pulled by forks that are
activated on Travis CI. As a result, all those forks have started to send
their fuzzers to Fuzzit inadvertantly consuming our CPUs along the way.
Let's prevent this by bailing out early if the script is run outside of
the systemd repository.
2019-09-06 02:07:37 +00:00
Evgeny Vereshchagin
d4d74d0fc0 fuzzit: get MSan to track origins
It's just a follow-up to https://github.com/systemd/systemd/pull/13281
that should make it a little bit easier to make sense of
MSan reports.

https://clang.llvm.org/docs/MemorySanitizer.html#origin-tracking
2019-08-09 07:25:39 +00:00
Evgeny Vereshchagin
9cf19c1b30 fuzzit: collapse a series of commands
Now that the ids are gone, we can generate commands simply
using names as we go
2019-08-08 15:08:58 +00:00
Evgeny Vereshchagin
a9285009b7 fuzzit: switch to a new organization 2019-08-08 15:08:52 +00:00
Evgeny Vereshchagin
688b142d39 fuzzit: unleash MSan on all the fuzzers 2019-08-07 23:09:15 +00:00
Yu Watanabe
81f33199e7 fuzzit: ignore library version 2019-07-23 23:32:33 +03:00
Evgeny Vereshchagin
b5efca2a65 Free up some resources on Azure Pipelines
Let's drop the tests we also run on CentOS CI to free up some resources
for something more useful.
2019-07-17 13:28:38 +09:00
Evgeny Vereshchagin
ee784fff1a tests: run TEST-01-BASIC under ASAN+UBSan again
Not that `journalctl --flush` is no longer flaky, it should be
safe to bring the test back.
2019-07-16 15:01:04 +00:00
Evgeny Vereshchagin
0772b11cc8 tests: turn on the "object-size" UBSan check on Fuzzit
Now that 2eb1c19881 is merged it should be safe.
2019-07-11 19:37:22 +03:00
Frantisek Sumsal
03bf413309 test: install missing dependencies for CIs 2019-07-08 21:37:16 +02:00
Evgeny Vereshchagin
28025ba839 travis: turn on all default UBSan checks except for pointer-overflow, object-size and float-cast-overflow 2019-06-17 23:45:36 +03:00
Evgeny Vereshchagin
5afed2fc20 fuzzit: sort UBSan checks alphabetically
to make it easier to make sense of them
2019-06-17 12:49:07 +02:00
Evgeny Vereshchagin
9bd2422ac3 travis: turn on nonnull-attribute on Fuzzit 2019-06-15 23:12:24 +02:00
Evgeny Vereshchagin
f789e0b4f8 travis: add more ASan options 2019-06-15 05:19:58 +02:00
Evgeny Vereshchagin
b5e1f0bdf4 travis: clean up bash variables a bit
in preparation for adding more ASan options
2019-06-15 05:19:58 +02:00
Evgeny Vereshchagin
5057d73ba1 travis: use UBSan checks from OSS-Fuzz
This should help to silence UBSan reports mentioned in
https://github.com/systemd/systemd/pull/12771#issuecomment-502139157
for now.
2019-06-15 05:19:52 +02:00
Evgeny Vereshchagin
e87e6962fd travis: turn on UBSan on Fuzzit 2019-06-15 00:09:15 +02:00
Evgeny Vereshchagin
356f607aa3 travis: add 5 more fuzz targets 2019-06-14 22:06:08 +02:00
Jeka Pats
53a42e6268 Continuous Fuzzing Integration with Fuzzit
includes two travis ci steps:

1) Every pull-request/push all fuzzing targets will do a quick
sanity run on the generated corpus and crashes (via Fuzzit)
2) On a daily basis the fuzzing targets will be compiled (from
master) and will and their respectible fuzzing job on Fuzzit
will be updated to the new binary.
2019-06-14 21:09:40 +03:00
Evgeny Vereshchagin
0813a5efb2
Merge pull request #12617 from mbiebl/skip-test-bpf-containers
test-bpf: skip test when run inside containers
2019-05-29 23:11:01 +03:00
Yu Watanabe
d7c5b3ec3e
Merge pull request #12510 from keszybz/test-directives
test: run check-directives.sh as part of the test suite
2019-05-21 08:35:10 +09:00
Yu Watanabe
3041250a9f
Merge pull request #12519 from keszybz/man-on-demand
Build man pages on demand only
2019-05-21 08:25:26 +09:00
Zbigniew Jędrzejewski-Szmek
f7ebc1e298 travis: use variable to avoid one call 2019-05-20 15:48:05 +02:00
Zbigniew Jędrzejewski-Szmek
9fd1a0babd tests: install perl for CI
It is useful for various tests (test-directives, test-udev, …).
2019-05-20 15:47:28 +02:00
Zbigniew Jędrzejewski-Szmek
c6448ee39e test: run check-directives.sh as part of the test suite 2019-05-20 15:44:31 +02:00
Frantisek Sumsal
75acb946cc travis: set the container env variable explicitly
As we build a custom Docker image, we need to ensure that systemd
correctly detects it's running in a container. One can simply do this
directly in a Dockerfile (ENV container docker) or when starting the
container (-e container=docker). For the sake of readability, let's
pick the latter approach here.
2019-05-19 23:37:07 +02:00
Evgeny Vereshchagin
f572f79e18 tests: catch broken fuzz targets as early as possible
See https://github.com/google/oss-fuzz/pull/2419.
2019-05-19 12:48:12 +03:00
Zbigniew Jędrzejewski-Szmek
5cef20c80a
Merge pull request #12515 from evverx/fix-fuzzers-in-local-mode
travis: make sure the fuzzers can be built in "local" mode
2019-05-16 23:04:45 +02:00
Evgeny Vereshchagin
63dc544b6f tests: make docker-run and helper.py happy by not using colons in filenames
This should address https://github.com/google/oss-fuzz/issues/2428
2019-05-16 20:08:00 +03:00
Evgeny Vereshchagin
a0603f8c28 tests: make fuzzbuzz.sh compatible with Azure Pipelines again
Now that https://github.com/systemd/systemd/pull/12542 is merged,
fuzzbuzz.sh should be changed a little bit to make it work
on Azure Pipelines. We can no longer assume that source repositories
are added "automagically" by Travis CI or that PATH is set properly.
2019-05-14 13:58:05 +02:00
Evgeny Vereshchagin
8c6637bab2 travis: make sure the fuzzers can be built in "local" mode 2019-05-14 13:42:17 +02:00
Evgeny Vereshchagin
e67d88e74b tests: turn on the QEMU part in the Xenial job
The test has been flaky since varlink was merged.
Let's not annoy people with the test that fails more often than not.

It should be OK because the same test is run on Arch.
2019-05-14 13:13:04 +02:00
Evgeny Vereshchagin
bedae21ec5 tests: set NSPAWN_TIMEOUT and QEMU_TIMEOUT explicitly
These were never set explictily because we relied on Travis CI
canceling a job if it's been stuck for 10 minutes. Now that
the script is run on Azure Pipelines (where the default timeout
is 60 minutes) we should limit the script manually to avoid waiting
for an hour for broken jobs to finish.
2019-05-14 13:04:42 +02:00
Evgeny Vereshchagin
fa8ac5eb77 tests: make fuzzbuzz.sh compatible with Azure Piplines 2019-05-14 12:22:03 +02:00
Evgeny Vereshchagin
8a243a04d7 travis: make the ASan+UBSan stage compatible with Azure Pipelines 2019-05-12 03:45:29 +02:00
Zbigniew Jędrzejewski-Szmek
0b0673b61a meson: default to -Dman=false to make development quicker
This makes the default build much quicker. If people are building systemd for
packaging or actual installation, they probably need to set some more options
anyway (-Ddns-servers=, -Dntp-servers=), so adding -Dman=true is not a big
burden.

For CIs configured locally, -Dman=true is added to restore status quo ante.
2019-05-09 18:17:28 +02:00
Evgeny Vereshchagin
fcbabd0f90 travis: make sure that the fuzz targets can be built on OSS-Fuzz 2019-05-07 21:39:01 +00:00
Evgeny Vereshchagin
9337418565 travis: make sure the fuzz targets can be built on FuzzBuzz 2019-05-07 21:39:01 +00:00
Ben Boeckel
5238e95759 codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
Zbigniew Jędrzejewski-Szmek
cc5549ca12 scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)

Also remove the few vim config lines that were left. We should either have them
on all files, or none.

Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-12 08:30:31 +02:00
Evgeny Vereshchagin
c5b4b18e7d travis: use /bin/systemd instead of /usr/bin/systemd
Apparently systemd is in /bin now.
2019-03-05 08:00:22 +03:00