newsAdvanced Gtk+ Sequencer - News: Facts matter - no more magic

 
 
Latest News
Advanced Gtk+ Sequencer v2.2.5 released posted by jkraehemann, Tue 25 Jun 2019 06:43:09 PM UTC - 0 replies
GSequencer v2.1.53 for debian buster posted by jkraehemann, Fri 08 Mar 2019 11:01:12 PM UTC - 0 replies
Get emotional as debian buster is going to be released posted by jkraehemann, Thu 07 Mar 2019 12:46:59 AM UTC - 0 replies
State of GSequencer in debian buster posted by jkraehemann, Sun 03 Mar 2019 07:08:32 PM UTC - 0 replies
[Submit News]
[81 news in archive]

Facts matter - no more magic

Item posted by Joël Krähemann <jkraehemann> on Fri 31 Mar 2017 11:01:19 PM UTC.

Functional testing is mandatory in order to ensure the robustness of your application. GSequencer has got recently a basic functional test setup.

#include <ags/test/X/ags_functional_test_util.h> does mainly the job. It shall give you full automated testing control over Advanced Gtk+ Sequencer. The very first functional test using it is ags_functional_machine_add_and_destroy_test.c

It does for each built-in machine add it and destroy. This happens by calling g_signal_emit_by_name() and alike. Below you see the output of running within valgrind. If you ever tried to debug a GUI within valgrind, you know that can be quiet annoying. As the GUI's reaction is very slow.

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      1      1    n/a      0        0
               tests      6      6      6      0        0
             asserts     12     12     12      0      n/a

Elapsed time =  315.519 seconds
--11545-- Discarding syms at 0x123412b0-0x12345745 in /lib/x86_64-linux-gnu/libnss_compat-2.24.so due to munmap()
--11545-- Discarding syms at 0x127620e0-0x127683f7 in /lib/x86_64-linux-gnu/libnss_nis-2.24.so due to munmap()
--11545-- Discarding syms at 0x1254bfd0-0x125572d1 in /lib/x86_64-linux-gnu/libnsl-2.24.so due to munmap()
--11545-- Discarding syms at 0x1296e1d0-0x12973e91 in /lib/x86_64-linux-gnu/libnss_files-2.24.so due to munmap()
==11545==
==11545== HEAP SUMMARY:
==11545==     in use at exit: 11,754,001 bytes in 131,157 blocks
==11545==   total heap usage: 3,963,847 allocs, 3,832,690 frees, 252,324,723 bytes allocated
==11545==
==11545== Searching for pointers to 126,822 not-freed blocks
==11545== Checked 210,116,160 bytes
==11545==
==11545== LEAK SUMMARY:
==11545==    definitely lost: 616,416 bytes in 18,032 blocks
==11545==    indirectly lost: 3,322,929 bytes in 30,482 blocks
==11545==      possibly lost: 67,131 bytes in 229 blocks
==11545==    still reachable: 7,101,973 bytes in 78,079 blocks
==11545==                       of which reachable via heuristic:
==11545==                         length64           : 27,128 bytes in 326 blocks
==11545==                         newarray           : 2,416 bytes in 71 blocks
==11545==         suppressed: 0 bytes in 0 blocks
==11545== Rerun with --leak-check=full to see details of leaked memory
==11545==
==11545== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==11545== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Fixed memory corruption

The benefits are evident of functional testing. Just figured out a memory corruption as destroying AgsFFPlayer. There was some other wicked things going on. I was able to trigger SIGTRAP by calling following during the start of the test.

g_log_set_fatal_mask(G_LOG_DOMAIN,
                     G_LOG_LEVEL_CRITICAL);

For now, the functional testing is going to be extended.

Bests,
Joël

No messages in Facts matter - no more magic

 

Back to the top


Powered by Savane 3.4