1. Куча / Говнокод #27315

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    ?check_trace(
           begin
               %% Inject some orderings to make sure the replicant
               %% receives transactions in all states.
               %%
               %% 1. Commit some transactions before the replicant start:
               ?force_ordering(#{?snk_kind := trans_gen_counter_update, value := 5}, #{?snk_kind := state_change, to := disconnected}),
               %% 2. Make sure the rest of transactions are produced after the agent starts:
               ?force_ordering(#{?snk_kind := subscribe_realtime_stream}, #{?snk_kind := trans_gen_counter_update, value := 10}),
               %% 3. Make sure transactions are sent during TLOG replay:
               ?force_ordering(#{?snk_kind := state_change, to := bootstrap}, #{?snk_kind := trans_gen_counter_update, value := 15}),
               %% 4. Make sure some transactions are produced while in normal mode
               ?force_ordering(#{?snk_kind := state_change, to := normal}, #{?snk_kind := trans_gen_counter_update, value := 25}),
    ...

    Какой тест )))

    Запостил: CHayT, 24 Марта 2021

    Комментарии (3) RSS

    • seo: пока в йажа инжектируют зависимости, мы инжектируем process schedulings.
      Ответить
    • Что здесь происходит? Расставляются happens before между какими-то событиями?
      Ответить
      • Что-то вроде того. Допустим, N процессов эмитят события. Эта фиговина внедряется в порядок исполнения этих процессов (scheduling), и задерживает некие процессы до тех пор, пока какой-то другой процесс не заэмитил определённое событие.
        Это нужно, т.к. Concuerror (тулза для исследования всех scheduling'ов системы) слабо умеет работать с ресурсами OS, а иногда в тестах хочется работать с живым IO, а не эмулированным.
        Ответить

    Добавить комментарий