test/test_utils.cpp

changeset 654
c9d008861178
parent 647
2e6e9d9f2159
parent 653
e081643aae2a
child 655
7340c4255f1f
--- a/test/test_utils.cpp	Wed Feb 08 20:26:09 2023 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "cx/utils.h"
-
-#include <gtest/gtest.h>
-
-TEST(Utils, ForN) {
-    unsigned j;
-    j = 0;
-    cx_for_n(i, 50) {
-        EXPECT_EQ(i, j);
-        j++;
-    }
-}
-
-TEST(Utils, swap_ptr) {
-    int i = 5;
-    int j = 8;
-    int *ip = &i;
-    int *jp = &j;
-    cx_swap_ptr(ip, jp);
-    EXPECT_EQ(ip, &j);
-    EXPECT_EQ(jp, &i);
-}
-
-TEST(Utils, szmul) {
-    size_t r;
-    int e;
-    e = cx_szmul(5, 7, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(35, r);
-
-    size_t s = SIZE_MAX & ~3;
-
-    e = cx_szmul(s / 4, 2, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s / 2, r);
-    e = cx_szmul(2, s / 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s / 2, r);
-
-    e = cx_szmul(s / 4, 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s, r);
-
-    e = cx_szmul(4, s / 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s, r);
-
-    e = cx_szmul(s / 4, 5, &r);
-    EXPECT_NE(0, e);
-
-    e = cx_szmul(5, s / 4, &r);
-    EXPECT_NE(0, e);
-
-    e = cx_szmul(SIZE_MAX - 4, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul(0, SIZE_MAX - 1, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul(SIZE_MAX, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul(0, SIZE_MAX, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul(0, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-}
-
-#ifdef CX_SZMUL_BUILTIN
-
-// also test the custom implementation
-struct Utils_szmul_impl : ::testing::Test {
-#undef CX_SZMUL_BUILTIN
-
-#include "../src/utils.c"
-
-#define CX_SZMUL_BUILTIN
-};
-
-TEST_F(Utils_szmul_impl, Test) {
-    size_t r;
-    int e;
-    e = cx_szmul_impl(5, 7, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(35, r);
-
-    size_t s = SIZE_MAX & ~3;
-
-    e = cx_szmul_impl(s / 4, 2, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s / 2, r);
-    e = cx_szmul_impl(2, s / 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s / 2, r);
-
-    e = cx_szmul_impl(s / 4, 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s, r);
-
-    e = cx_szmul_impl(4, s / 4, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(s, r);
-
-    e = cx_szmul_impl(s / 4, 5, &r);
-    EXPECT_NE(0, e);
-
-    e = cx_szmul_impl(5, s / 4, &r);
-    EXPECT_NE(0, e);
-
-    e = cx_szmul_impl(SIZE_MAX - 4, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul_impl(0, SIZE_MAX - 1, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul_impl(SIZE_MAX, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul_impl(0, SIZE_MAX, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-
-    e = cx_szmul_impl(0, 0, &r);
-    EXPECT_EQ(0, e);
-    EXPECT_EQ(0, r);
-}
-
-#endif // CX_SZMUL_BUILTIN

mercurial