Skip to content
Snippets Groups Projects
  1. Dec 16, 2021
  2. Dec 06, 2021
  3. Dec 03, 2021
    • Florian Fischer's avatar
      reduce test load when logging · 905fb18b
      Florian Fischer authored
      I suspect some test which scale whith the number of CPUs to timeout
      mostly on jenkins2.
      This patch reduces the load when logging is active and increases the
      load when logging is off.
      Therefore our test build with debugoptimized will do less and hopefully
      only timeout when they actually hung and the release test will do
      more.
      905fb18b
  4. Nov 23, 2021
    • Florian Fischer's avatar
      add concurrent BPS test · 65a593bc
      Florian Fischer authored
      The test introduces multiple cycles of Semaphores and
      a Fiber for each semaphore blocking and signaling the next.
      Through work-stealing the fibers from a cycle should be spread
      across different workers and thus test concurrent use of
      BinaryPrivateSemaphores.
      
      Cycle of length 3: Sem A -> Sem B -> Sem C -> Sem A -> ...
      Algorithm:
      	if isFirstInCycle
      		signal next
      
      	wait
      
      	if not isFirstInCycle
      		signal next
      65a593bc
  5. Nov 10, 2021
    • Florian Schmaus's avatar
      Fixes for clang-tidy 13 · dfa64867
      Florian Schmaus authored
      While we do not have yet LLVM 13 in the gitlab-ci, I use it on my
      systems. So fix the new warnings found with clang-tidy 13.
      dfa64867
  6. Sep 24, 2021
    • Florian Fischer's avatar
      [ConcurrentNetworkEchoTest] scale work with the available CPUs and log_level · 6afbf1d3
      Florian Fischer authored
      The chosen amounts of echos take on my 16 core ryzen system ~5seconds.
      This should hopefully reduce CI timeout where we are not sure if they are
      bugs or legit timeouts. Furthermore this should reduce the amount of logs
      we write and have to store after each CI run.
      6afbf1d3
    • Florian Fischer's avatar
      [SimpleDiskAndNetworkTest] don't terminate the Runtime during the test · 5c1c60ca
      Florian Fischer authored
      Before 05dc56ed the two test cases testDiskAndNetwork, testIov
      where combined in one function which was terminating the runtime after the client
      closed its socketafter the test was done.
      This was already broken before 05dc56ed but after the separation of the
      two use cases the race between the Runtime terminating and the execution of
      the last parts of the test-runner's alphaFiber became bigger.
      
      When the Runtime terminates because the last worker running the testIoV
      code has outstanding IO the test-runner's successSem is never notified.
      5c1c60ca
  7. Sep 21, 2021
  8. Sep 16, 2021
  9. Sep 14, 2021
    • Florian Fischer's avatar
      [lib/LinuxVersion] multiple fixes · c1387013
      Florian Fischer authored
      * remove fancy but broken static LinuxVersion object.
        This means each usage of a EMPER_LINUX_* macro results in a syscall.
        But I think this is worth it when the result is a sound program.
        Users of those macros should store the result of the comparison anyway.
      * fix that we skipped parsing the last part of a version string
      * add a test for LinuxVersion
      * IO_MUST_INVALIDATE_BROKEN_CHAIN can still be const
      c1387013
  10. Sep 13, 2021
    • Florian Fischer's avatar
      [io/tests] use our own ASSERT macro unaffected by NDEBUG · 9fdc6e1a
      Florian Fischer authored
      This allows use to remove the current hack that the test are always
      build without NDEBUG regardless of the meson buildtype.
      
      Which is fact fixes the failing io tests in release builds.
      Because Future.hpp and Future.cpp see the same version of NDEBUG.
      9fdc6e1a
  11. Aug 19, 2021
  12. Aug 18, 2021
  13. Jul 29, 2021
  14. Jul 07, 2021
  15. Jul 06, 2021
  16. May 17, 2021
  17. May 04, 2021
  18. Apr 13, 2021
  19. Apr 01, 2021
  20. Mar 24, 2021
  21. Mar 23, 2021
    • Florian Fischer's avatar
      [Debug] s/WDBG/DBG and always terminate a log messager with a new line · 28028fac
      Florian Fischer authored
      Rename the macro used to build up the debug message, to better reflect
      its generality.
      It can be used anywhere to build a string with C++ stream formatting.
      std::string s = EMPER_BUILD_STR("foo = " << 1 " , bar = " << bar(42));
      
      Since WDBG was the only log macro without a terminating newline, which
      was in fact broken according to flow, we can remove it and the new line
      handling code in the LOG macro.
      28028fac
  22. Mar 18, 2021
    • Florian Fischer's avatar
      [IoContext] invalidate unsubmitted sqes · 03727b29
      Florian Fischer authored
      io_uring_submit does some inline error checking and consumes less
      cqes than prepared if an error is detected.
      
      Currently we just cancel the Futures, whose prepared sqes were not submitted.
      But this leaves already prepared sqes for those futures in the SQ
      of the io_uring which will be submitted the next time io_uring_submit
      is called.
      
      This results in a violation of the chain guaranty, that dependent operations
      are only executed if all dependencies were successful.
      Additionally this leads to double completions or memory corruption
      because the io_uring will produce cqes for already completed Futures.
      
      To prevent this from happening we track all sqes we prepared to
      invalidate and resubmit those which were not submitted because of a short submit.
      We invalidate sqes by preparing them as NOP instructions and set their
      user data to NULL.
      
      I took this approach instead of rewinding the ring or somethings like
      similar because it seemed safer for me not fiddle with io_uring internals
      and just be less efficient.
      
      Enable previously failing LinkFutureTest test cases.
      03727b29
    • Florian Fischer's avatar
      [IO] mark IO functions returning futures as nodiscard · 79f6eb9f
      Florian Fischer authored
      Fix compilation error in LinkFutureTest where clsoe was used instead
      of closeAndWait.
      79f6eb9f
  23. Mar 16, 2021
  24. Mar 13, 2021
  25. Mar 03, 2021
  26. Feb 26, 2021
    • Florian Fischer's avatar
      [meson] better propagate dependencies · 2d0b5f6b
      Florian Fischer authored
      The emper header LockedUnboundedQueue.hpp could depend on different libraries
      according to the implementation.
      
      To link those dependencies with everything including LockedUnboundedQueue.hpp
      we propagate all emper_dependencies through emper_dep.
      
      And using emper_dep as a dependency seems anyway better than essentially
      writing down emper_dep manually each time.
      
      emper_dep essentially is:
      (link_with:emper, include_directories: emper_all_include)
      2d0b5f6b
Loading