Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/TestStdAbs/TestStdAbs.cpp')
-rw-r--r--src/tests/TestStdAbs/TestStdAbs.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/tests/TestStdAbs/TestStdAbs.cpp b/src/tests/TestStdAbs/TestStdAbs.cpp
new file mode 100644
index 000000000..ae06787a9
--- /dev/null
+++ b/src/tests/TestStdAbs/TestStdAbs.cpp
@@ -0,0 +1,31 @@
+// Copyright 2005-2017 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include <QtCore>
+#include <QtTest>
+
+#include <cmath>
+
+/// Test the std::abs works with floats.
+/// In fixing mumble-voip/mumble#3281, I
+/// stumbled upon http://eigen.tuxfamily.org/bz/show_bug.cgi?id=619.
+/// It seems that, on some platforms, std::abs
+/// might not call through to the correct libc
+/// function.
+/// Test that it works for us.
+class TestStdAbs : public QObject {
+ Q_OBJECT
+ private slots:
+ void floatWorks();
+};
+
+void TestStdAbs::floatWorks() {
+ const float in = -1.5;
+ float out = std::abs(in);
+ QVERIFY(out > 1.2 && out < 1.8);
+}
+
+QTEST_MAIN(TestStdAbs)
+#include "TestStdAbs.moc"