vak: (Default)
[personal profile] vak
Промышленная разработка кода невозможна без юнит-тестов. Для современных языков есть развитые средства поддержки TDD, но Си как-то отставал в этом плане. Однако нашёлся и для Си неплохой фреймворк: cmocka.

Статья-введение: "Unit testing C code with CMocka"

Слайды с конференции devconf.cz 2020: cmocka_unit_testing_and_mocking.pdf

Date: 2022-04-14 19:16 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Ну, лучше поздно, чем никогда. Прошло примерно 50 лет?

Date: 2022-04-15 18:09 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Там нестандартные штуки, в частности какая-то реализация yield.

Date: 2022-04-14 19:59 (UTC)
From: [personal profile] ivanrubilo
Лучше уж совсем на Си никогда не писать больше имхо.
Либо только туда, где коммиты бесноватые всемогущие пожизненные диктаторы принимают только в виде Си.

Date: 2022-04-14 22:19 (UTC)
sab123: (Default)
From: [personal profile] sab123
Моками пользоваться не надо. Они дают только иллюзию тестирования.

Date: 2022-04-14 23:35 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Ух ты, оно умеет MOVE LINE! Вот, наверное, откуда у ClearCase ноги растут.

(это я про IFCOMP имел в виду)
Edited Date: 2022-04-14 23:38 (UTC)

Date: 2022-04-14 23:48 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
#include <errno.h> иначе проблемы с линкером.

Date: 2022-04-14 23:59 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Это какая-то очень ранняя версия. Разница между 8 строками (a, b, c, d, e, f, g, h) и (h, g, f, e, d, c, b, a) оказывается

Comparing:  1 2

*** AFTER LINE(s) ======================================= ***
      2|b
*** MOVE LINE(s) ---------------------------------------- ***
      1|a
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      4|d
*** MOVE LINE(s) ---------------------------------------- ***
      3|c
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      6|f
*** MOVE LINE(s) ---------------------------------------- ***
      5|e
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      8|h
*** MOVE LINE(s) ---------------------------------------- ***
      7|g
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      3|c
*** MOVE LINE(s) ---------------------------------------- ***
      2|b
      1|a
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      7|g
*** MOVE LINE(s) ---------------------------------------- ***
      6|f
      5|e
*** ===================================================== ***

*** AFTER LINE(s) ======================================= ***
      5|e
*** MOVE LINE(s) ---------------------------------------- ***
      4|d
      3|c
      2|b
      1|a
*** ===================================================== ***

       0 lines deleted from old.
       0 lines inserted in new.
       0 lines deleted from old and replaced with 0 lines of new.
      12 lines moved in old.
       7 change blocks.


Насколько помнится, ClearCase был умнее.

Date: 2022-04-15 20:57 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Я имел в виду начало-середину 90-х. После этого я ClearCase не пользовался.