/* * Carla Tests * Copyright (C) 2013 Filipe Coelho * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * For a full copy of the GNU General Public License see the doc/GPL.txt file. */ #include "CarlaUtils.hpp" struct MyStruct { char pad[100]; int i; double d; intptr_t ptr; }; int main() { // misc functions bool2str(false); bool2str(true); pass(); // string print functions, handled in Print // carla_*sleep carla_sleep(1); carla_msleep(1); // carla_setenv carla_setenv("THIS", "THAT"); assert(std::strcmp(getenv("THIS"), "THAT") == 0); // carla_strdup const char* const str1 = carla_strdup("string1"); const char* const strF = carla_strdup_free(strdup("stringFree")); delete[] str1; delete[] strF; { struct TestStruct { const char* str1; const char* str2; const char* str3; const char* str4; TestStruct() : str1(carla_strdup("str1")), str2(carla_strdup("str2")), str3(nullptr), str4(carla_strdup("str4")) {} ~TestStruct() { if (str1 != nullptr) { delete[] str1; str1 = nullptr; } if (str2 != nullptr) { delete[] str2; str2 = nullptr; } if (str3 != nullptr) { delete[] str3; str3 = nullptr; } if (str4 != nullptr) { delete[] str4; str4 = nullptr; } } }; TestStruct a, b, c; } // math functions carla_min(0, -5, 8); carla_fixValue(0.0f, 1.0f, 1.1f); { int v1 = 6; int v2 = 8; const int v3 = 9; assert(v1 == 6 && v2 == 8 && v3 == 9); carla_copy(&v1, &v2, 1); assert(v1 == 8 && v2 == 8 && v3 == 9); carla_copy(&v2, &v3, 1); assert(v1 == 8 && v2 == 9 && v3 == 9); } { float data1[500]; float data2[500]; float data0[500]; float data3[500]; carla_zeroFloat(data0, 500); carla_fill(data1, 500, 6.41f); carla_copy(data2, data1, 500); carla_copyFloat(data3, data2, 500); carla_zeroMem(data2, sizeof(float)*500); for (int i=0; i < 500; ++i) { assert(data0[i] == 0.0f); assert(data1[i] == 6.41f); assert(data2[i] == 0.0f); assert(data3[i] == 6.41f); } } { MyStruct a, b, c, d; carla_zeroStruct(a); carla_zeroStruct(b); carla_zeroStruct(c); carla_zeroStruct(d); } return 0; }