tests.hpp (2126B)
1 /* 2 * DISTRHO Plugin Framework (DPF) 3 * Copyright (C) 2012-2024 Filipe Coelho <falktx@falktx.com> 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any purpose with 6 * or without fee is hereby granted, provided that the above copyright notice and this 7 * permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 10 * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 11 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 12 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #pragma once 18 19 #include "dgl/Application.hpp" 20 21 #include "distrho/extra/Thread.hpp" 22 23 #define DISTRHO_ASSERT_EQUAL(v1, v2, msg) \ 24 if (v1 != v2) { d_stderr2("Test condition failed: %s; file:%s line:%i", msg, __FILE__, __LINE__); return 1; } 25 26 #define DISTRHO_ASSERT_NOT_EQUAL(v1, v2, msg) \ 27 if (v1 == v2) { d_stderr2("Test condition failed: %s; file:%s line:%i", msg, __FILE__, __LINE__); return 1; } 28 29 #define DISTRHO_ASSERT_SAFE_EQUAL(v1, v2, msg) \ 30 if (d_isNotEqual(v1, v2)) { d_stderr2("Test condition failed: %s; file:%s line:%i", msg, __FILE__, __LINE__); return 1; } 31 32 START_NAMESPACE_DGL 33 34 // -------------------------------------------------------------------------------------------------------------------- 35 36 class ApplicationQuitter : public Thread 37 { 38 Application& app; 39 const int numSecondsToWait; 40 41 public: 42 ApplicationQuitter(Application& a, const int s = 2) 43 : Thread("ApplicationQuitter"), 44 app(a), 45 numSecondsToWait(s) 46 { 47 startThread(); 48 } 49 50 private: 51 void run() override 52 { 53 d_sleep(numSecondsToWait); 54 d_stdout("About to quit now..."); 55 app.quit(); 56 } 57 }; 58 59 // -------------------------------------------------------------------------------------------------------------------- 60 61 END_NAMESPACE_DGL