Commit Graph

333 Commits

Author SHA1 Message Date
Julian Brost 005fac0a23
Merge pull request #8742 from Icinga/bugfix/double-to-string
Convert::ToString(double): handle integral values too large for long long correctly
2021-06-15 12:28:15 +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 2d6d87d10f Convert::ToString(double): handle integral values too large for long long correctly
Even if a double represents an integer value, it might not be safe to cast it
to long long as it may overflow the type. Instead just use print the double
value with 0 decimals using std::setprecision.

Before:

    <1> => 18446744073709551616.to_string()
    "-9223372036854775808"

After:

    <1> => 18446744073709551616.to_string()
    "18446744073709551616"
2021-04-27 17:31:50 +02:00
Julian Brost af05a50740 Avoid dependency on Visual C++ ATL in tests on Windows
Better not have dependencies on Visual C++ if you can do without.
2021-04-09 15:28:40 +02:00
Alexander A. Klimov 9531de3835 JsonEncode(): serialize integers w/o trailing .0
... so Icinga DB can parse them as integers.
2021-03-23 17:52:37 +01:00
Julian Brost 49cfda833e Add tests for SHA1 function 2021-03-19 10:31:01 +01:00
Alexander Aleksandrovič Klimov ef8619f76b
Merge pull request #8601 from Icinga/feature/replace-std-boost-bind-with-lambdas-7006
Feature: Replace std/boost::bind() with lambdas
2021-03-18 17:56:13 +01:00
Yonas Habteab 43ba2da39c Replace std/boost::bind() function with lambda expression 2021-03-10 16:29:40 +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
Alexander Aleksandrovič Klimov 6b04ef6e5d
Merge pull request #7871 from Icinga/feature/more-uoms-for-perfdata-7225
PerfdataValue: add UoMs
2020-12-14 18:42:49 +01:00
Michael Insel e070651203 Add test-case for perfdata scientific notation 2020-11-27 11:40:10 +01:00
Alexander A. Klimov 3adba5c542 JsonEncode(): suffix pretty JSON w/ \n
refs #8194
2020-09-02 16:11:43 +02:00
Alexander A. Klimov 720a88c29a PerfdataValue: add UoMs
* {,{K,M,G,T,P,E,Z,Y}{,i}}B
  => bytes
* {,{k,m,g,t,p,e,z,y}{,i}}b
  => bits
* packets
* {n,u,m,}s m h d
  => seconds
* {n,u,m,,k,M,G,T,P,E,Z,Y}{{A,O,V,W},{A,W}{s,m,h}}
  => amperes, ohms, volts, watts, ampere-seconds, watt-hours
* lm dBm
  => lumens decibel-milliwatts
* {n,u,m,,k}g t
  => grams
* C F K
  => degrees-celsius, degrees-fahrenheit, degrees-kelvin
* {m,,h}l
  => liters

refs #7225
2020-04-03 12:47:36 +02:00
Michael Friedrich 3a4fb840d4 Tests: Add multi parent dependency test case 2020-02-11 15:13:25 +01:00
Michael Friedrich 76d531b4f0 Unit tests: Also test reachability in icinga_checkresult/* tests 2020-02-11 15:13:25 +01:00
Alexander A. Klimov 28f708bb7c LegacyTimePeriod: support specifying seconds 2019-08-22 18:50:37 +02: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
Alexander A. Klimov 95e90e99d4 Tests: _Exit() in main()
refs #7334
2019-07-23 12:14:06 +02:00
Michael Friedrich 9c5f280a85 Tests: Add Notification state/type to string cases 2019-07-16 13:46:22 +02:00
Michael Friedrich 88e5d8c47a TimePeriod: Fully support and test "day -X" notation
Previously no tests would have detected if this really worked or not.
2019-07-09 16:21:07 +02:00
Michael Friedrich 7665143afa Tests: Rewrite TimePeriod tests using Boost::DateTime
fixes #7257
2019-07-09 15:34:07 +02:00
Alexander A. Klimov 2306e0e93f Fix unit test icinga_legacytimeperiod/advanced
refs #5261
2019-06-06 13:11:34 +02:00
Michael Friedrich 5e931fe127 Tests: Add cases for LegacyTimePeriod::ProcessTimeRangeRaw() 2019-06-06 13:11:34 +02:00
Elias Ohm 52e3db279a Fix for double-free (and possibly other memory-corruption related) crashes at logrotate time
this is a direct fix of the issue revealing the problem that leads to crash

verification done with a patched icinga2 where the execution-order of the code lines of counter-parts involved in re-incrementing/decrementing Timer:Ptr is forced to be the one that leads to the obeserverd segfaults

refs #6737
2019-04-24 11:42:54 +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
Michael Friedrich 76b9cd6786 Fix missing include in JSON tests
Non-unity builds require the additional header.
2019-03-18 17:02:12 +01:00
Alexander A. Klimov c4333b49f5 Test Json{En,De}code() 2019-03-18 15:07:57 +01:00
Michael Friedrich ea80d93efc
Merge pull request #7014 from Icinga/feature/utf8cpp
Utility::ValidateUTF8(): use UTF8-CPP
2019-03-18 10:57:03 +01:00
Alexander A. Klimov 60ec11de73 Test Utility::ValidateUTF8() 2019-03-15 13:34:20 +01:00
Alexander A. Klimov 646feb76e0 Ignore failure of unit test base_utility/comparepasswords_issafe
... as volatile system load may cause false negatives
2019-02-26 11:45:03 +01:00
Michael Friedrich 458f997a18 Replace Copyright header with a short version, part II 2019-02-25 15:09:36 +01:00
Michael Friedrich d14a88235d Replace Copyright header with a short version, part I
CLion -> replace in path
2019-02-25 14:48:22 +01:00
Alexander A. Klimov 1b00331a88 Test Utility::ComparePasswords() 2019-02-22 16:59:36 +01:00
Michael Friedrich b08d485a41
Merge pull request #6857 from Icinga/bugfix/check_nscp_api-query-sorted-6536
Url#m_Query: preserve order
2019-02-11 17:57:32 +01:00
Michael Friedrich b1362aeb9b Add a unit test for Convert::ToLong(double) - fails 2019-01-30 14:23:57 +01:00
Alexander A. Klimov 268bd85752 Url#m_Query: test order preservation
refs #6536
2018-12-21 11:54:48 +01:00
Alexander A. Klimov eeb609d4ae Url#m_Query: preserve order
refs #6536
2018-12-21 11:52:37 +01:00
Michael Friedrich 9d73f0cf30 Implement unit tests for Dictionary initializers 2018-11-09 14:56:36 +01:00
Michael Friedrich 2991993f6b Apply workaround for timer tests with std::bind callbacks 2018-11-08 15:03:41 +01:00
Michael Friedrich 1a8a2c25f2 icinga.com: Update test and tools 2018-10-18 09:45:36 +02:00
Michael Friedrich dea5ec614e icinga.com: Update CMakeLists.txt 2018-10-18 09:35:18 +02:00
Michael Friedrich dab53448bc icinga.com: Update *.{h,c}pp 2018-10-18 09:27:04 +02:00
Gunnar Beutner e44848a664 Remove #include for deprecated header file 2018-08-13 14:07:24 +02:00
Michael Friedrich 4c55a5c6cf Fix prefix in unit tests for object packer 2018-07-27 13:57:28 +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