93 Commits

Author SHA1 Message Date
Julian Brost
60f75f4a3d VerifyCertificate: Work around issue in OpenSSL < 1.1.0 causing invalid certifcates being treated as valid
Old versions of OpenSSL stored a valid flag in the certificate (see inline code
comment for details) that if already set, causes parts of the verification to
be skipped and return that the certificate is valid, even if it's not actually
signed by the CA in the trust store.

This issue was assigned CVE-2025-48057.
2025-05-22 09:59:04 +02:00
Julian Brost
89f4f4f8d4 Add tests for Utility::FormatDateTime() 2024-09-23 10:45:43 +02:00
Yonas Habteab
3d1a2b4e44
Merge pull request #10128 from Icinga/broken-timeperiod-2.13
Fix broken `TimePeriod/ScheduledDowntime`s
2024-09-18 10:36:41 +02:00
Yonas Habteab
fb46d312e5 Add advanced timeperiod range,include/exclude test cases 2024-09-17 16:44:32 +02:00
Yonas Habteab
be775b4baf tests: Add some basic tests cases for LegacyTimePeriod::IsInTimeRange() 2024-09-17 16:44:32 +02:00
Julian Brost
6986417533 Timeperiods: fix off by one when calculating n-th last weekday of the month
A day specification like "monday -1" refers to the last Monday of the month.
However, there was an off by one if the first day of the next month is the same
day of the week, i.e. a Monday in this example.

LegacyTimePeriod::FindNthWeekday() picks a day to start the search for the day
in question. When given a negative n to search for the n-th last day, it
wrongly used the first day of the following month as the start and counted it
as if it was within the current month. This resulted in a 1/7 chance that the
result was one week too late.

This is fixed by using the last day of the current month instead.
2024-09-17 16:44:09 +02:00
Alexander A. Klimov
9345caacec Test IsCertUptodate() and IsCaUptodate() 2023-12-18 17:07:44 +01:00
Yonas Habteab
b6ba09e479 Test: Add multiline PerfData test case 2023-07-04 11:10:38 +02:00
Julian Brost
ccb18a04ec Checkable: Add test for state notifications after a suppression ends 2022-03-09 17:06:09 +01:00
Julian Brost
d4b9d7e51b Add tests for LegacyTimePeriod::ScriptFunc when used by TimePeriod::IsInside 2022-02-21 15:24:15 +01:00
Noah Hilverling
6ddac83d81 Dictionary: Make sure underlaying map is ordered 2021-11-12 17:55:47 +01:00
Julian Brost
d07d48b169 Add tests for DST handling in TimePeriods and ScheduledDowntimes 2021-07-26 16:09:20 +02:00
Alexander A. Klimov
ea5411a6e0 PluginUtility::FormatPerfdata(): normalize UoMs if desired 2021-07-05 19:05:32 +02:00
Alexander Aleksandrovič Klimov
2cd9c1d902
Merge pull request #8835 from Icinga/bugfix/api-filename-truncation
Fix/restrict truncation of filenames for API-created objects
2021-06-23 12:06:31 +02:00
Julian Brost
97d6876803 Utility: add a function to truncate strings while avoiding collisions 2021-06-17 16:21:01 +02:00
Julian Brost
c40b18ef61 ConfigPackageUtility::ValidateName: replace broken regex
The old validation regex matched if the name consists only of invalid
character, not that it does not contain them, i.e. something like "foo/bar" was
considered valid.

This commit replaces the regex with a check that all characters in the name are
allowed characters.
2021-06-15 12:16:54 +02:00
Julian Brost
06999faf25 Allow using E in perfdata both as exponent and unit prefix 2021-06-08 12:37:13 +02:00
Julian Brost
62cbe72cdb
Merge pull request #8492 from Icinga/bugfix/perfdata-scientific-notation
Fix perfdata parser not recognize scientific notation
2021-06-07 15:29:52 +02:00
Julian Brost
49cfda833e Add tests for SHA1 function 2021-03-19 10:31:01 +01:00
Alexander Aleksandrovič Klimov
dbdfe189c0
Merge pull request #7092 from Icinga/bugfix/command-escape-windows-4849
Fix Windows command escape for \"
2021-02-01 11:20:44 +01:00
Julian Brost
56095b29f4 Add tests for Utility::EscapeCreateProcessArg 2021-01-29 15:15:43 +01:00
Michael Insel
e070651203 Add test-case for perfdata scientific notation 2020-11-27 11:40:10 +01:00
Michael Friedrich
3a4fb840d4 Tests: Add multi parent dependency test case 2020-02-11 15:13:25 +01:00
Michael Friedrich
da982c256b Add unit test for Utility::CompareVersion 2019-08-14 13:14:43 +02:00
Michael Friedrich
96f62d2d34 Add Utility::ParseVersion() and unit tests
This now uses a regex to extract the short version
similar to how Icinga Web 2 does it.

Additional unit tests prove the rule.
2019-08-14 11:22:55 +02:00
Michael Friedrich
9c5f280a85 Tests: Add Notification state/type to string cases 2019-07-16 13:46:22 +02:00
Michael Friedrich
5e931fe127 Tests: Add cases for LegacyTimePeriod::ProcessTimeRangeRaw() 2019-06-06 13:11:34 +02:00
Michael Friedrich
6ace8001d8
Merge pull request #7019 from Icinga/feature/new-json-library
Replace YAJL with nlohmann::json
2019-03-18 17:26:57 +01:00
Alexander A. Klimov
c4333b49f5 Test Json{En,De}code() 2019-03-18 15:07:57 +01:00
Alexander A. Klimov
60ec11de73 Test Utility::ValidateUTF8() 2019-03-15 13:34:20 +01:00
Michael Friedrich
458f997a18 Replace Copyright header with a short version, part II 2019-02-25 15:09:36 +01:00
Alexander A. Klimov
1b00331a88 Test Utility::ComparePasswords() 2019-02-22 16:59:36 +01:00
Michael Friedrich
9d73f0cf30 Implement unit tests for Dictionary initializers 2018-11-09 14:56:36 +01:00
Michael Friedrich
dea5ec614e icinga.com: Update CMakeLists.txt 2018-10-18 09:35:18 +02:00
Alexander A. Klimov
d21a218527 Test PackObject 2018-07-27 13:57:28 +02:00
Michael Friedrich
2fd6709952 Remove ApiUser password_hash functionality
This affects and fixes

- Windows reload
- Config validation
- RHEL 7.5 OpenSSL memory corruption
- Hash algorithm, requested changes

refs #6378
refs #6279
refs #6278
2018-06-19 11:32:03 +02:00
Michael Friedrich
6660a45c41 Implement Array::Unique() and add unit tests
refs #4732
2018-05-09 17:25:55 +02:00
Markus Frosch
eb71e16995 tests: Move IcingaApplicationFixture out of test-runner
And make it basically a singleton that would be callable by other test
units.
2018-03-26 13:58:12 +02:00
Jean Flach
92e2faaa08 Hash API password and comparison
fixes #4920
2018-02-15 13:09:22 +01:00
Markus Frosch
7d189b58f8 test/cmake: Don't force dynamic builds for testing 2018-02-07 20:30:36 +01:00
Jean Flach
1da6b2c883 Fix whitespaces in CMakeLists files
Uses 2 space indentation as standard
2018-01-19 09:19:40 +01:00
Gunnar Beutner
e1134fd3d9 Build all remaining libraries as object libraries 2018-01-17 14:59:02 +01:00
Gunnar Beutner
2a9dceb367 Use CMake object libraries for our libs 2018-01-17 04:28:21 +01:00
Gunnar Beutner
75e2473616 Clean up source lists in the CMakeLists.txt files 2018-01-03 11:47:46 +01:00
Gunnar Beutner
90496b5456 Build libraries as static libraries 2018-01-02 23:29:48 +01:00
Michael Insel
158ae2188e Change copyright header for 2018 2018-01-02 12:08:55 +01:00
Adam James
37d100ddef Implement unit tests for the time period parser
fixes #11146
2017-12-20 08:08:02 +01:00
Gunnar Beutner
ff0b6ba630 Fix build problems with Visual Studio 2017 2017-12-14 08:55:36 +01:00
Jean Flach
a21ffd6fe4 Fix flapping
Re-implement flapping following the 'old way' of just observing the last
20 stage changes.

refs #4982
2017-10-24 15:54:05 +02:00
Michael Friedrich
d74b15d640 Move Base64 class into libbase
refs #5538
2017-09-11 16:51:13 +02:00