DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

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