Add travis sanitizers tests. (#3557)

* Add travis sanitizers tests.

* Add gcc-7 in Travis.
* Add SANITIZER_PATH for CMake.
* Enable sanitizer tests in Travis.

* Fix memory leaks in tests.

* Fix all memory leaks reported by Address Sanitizer.
* tests/cpp/helpers.h/CreateDMatrix now returns raw pointer.
This commit is contained in:
trivialfis
2018-08-19 12:40:30 +08:00
committed by Rory Mitchell
parent 983cb0b374
commit cf2d86a4f6
30 changed files with 221 additions and 76 deletions

View File

@@ -11,6 +11,7 @@ TEST(Metric, RMSE) {
{0.1f, 0.9f, 0.1f, 0.9f},
{ 0, 0, 1, 1}),
0.6403f, 0.001f);
delete metric;
}
TEST(Metric, MAE) {
@@ -21,6 +22,7 @@ TEST(Metric, MAE) {
{0.1f, 0.9f, 0.1f, 0.9f},
{ 0, 0, 1, 1}),
0.5f, 0.001f);
delete metric;
}
TEST(Metric, LogLoss) {
@@ -31,6 +33,7 @@ TEST(Metric, LogLoss) {
{0.1f, 0.9f, 0.1f, 0.9f},
{ 0, 0, 1, 1}),
1.2039f, 0.001f);
delete metric;
}
TEST(Metric, Error) {
@@ -56,6 +59,7 @@ TEST(Metric, Error) {
{0.1f, 0.2f, 0.1f, 0.2f},
{ 0, 0, 1, 1}),
0.5f, 0.001f);
delete metric;
}
TEST(Metric, PoissionNegLogLik) {
@@ -66,4 +70,5 @@ TEST(Metric, PoissionNegLogLik) {
{0.1f, 0.2f, 0.1f, 0.2f},
{ 0, 0, 1, 1}),
1.1280f, 0.001f);
delete metric;
}

View File

@@ -4,8 +4,11 @@
#include "../helpers.h"
TEST(Metric, UnknownMetric) {
EXPECT_ANY_THROW(xgboost::Metric::Create("unknown_name"));
EXPECT_NO_THROW(xgboost::Metric::Create("rmse"));
EXPECT_ANY_THROW(xgboost::Metric::Create("unknown_name@1"));
EXPECT_NO_THROW(xgboost::Metric::Create("error@0.5f"));
xgboost::Metric * metric;
EXPECT_ANY_THROW(metric = xgboost::Metric::Create("unknown_name"));
EXPECT_NO_THROW(metric = xgboost::Metric::Create("rmse"));
delete metric;
EXPECT_ANY_THROW(metric = xgboost::Metric::Create("unknown_name@1"));
EXPECT_NO_THROW(metric = xgboost::Metric::Create("error@0.5f"));
delete metric;
}

View File

@@ -13,6 +13,8 @@ TEST(Metric, MultiClassError) {
{0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f},
{0, 1, 2}),
0.666f, 0.001f);
delete metric;
}
TEST(Metric, MultiClassLogLoss) {
@@ -25,4 +27,6 @@ TEST(Metric, MultiClassLogLoss) {
{0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f},
{0, 1, 2}),
2.302f, 0.001f);
delete metric;
}

View File

@@ -17,6 +17,8 @@ TEST(Metric, AMS) {
metric = xgboost::Metric::Create("ams@0");
ASSERT_STREQ(metric->Name(), "ams@0");
EXPECT_NEAR(GetMetricEval(metric, {0, 1}, {0, 1}), 0.311f, 0.001f);
delete metric;
}
TEST(Metric, AUC) {
@@ -29,6 +31,8 @@ TEST(Metric, AUC) {
0.5f, 0.001f);
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 0}, {0, 0}));
delete metric;
}
TEST(Metric, AUCPR) {
@@ -50,6 +54,8 @@ TEST(Metric, AUCPR) {
0.2769199f, 0.001f);
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 0}, {0, 0}));
delete metric;
}
TEST(Metric, Precision) {
@@ -74,6 +80,8 @@ TEST(Metric, Precision) {
0.5f, 0.001f);
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
delete metric;
}
TEST(Metric, NDCG) {
@@ -114,6 +122,8 @@ TEST(Metric, NDCG) {
{0.1f, 0.9f, 0.1f, 0.9f},
{ 0, 0, 1, 1}),
0.3868f, 0.001f);
delete metric;
}
TEST(Metric, MAP) {
@@ -139,4 +149,5 @@ TEST(Metric, MAP) {
{0.1f, 0.9f, 0.1f, 0.9f},
{ 0, 0, 1, 1}),
0.25f, 0.001f);
delete metric;
}