[devel] Q: энтропия на сборочнице [bolt-0.9.1-alt1: Sisyphus/i586 test rebuild failed]
Dmitry V. Levin
ldv на altlinux.org
Пн Мар 1 20:56:20 MSK 2021
On Mon, Mar 01, 2021 at 06:10:32PM +0100, Konstantin Lepikhov wrote:
> Привет!
>
> Давно мучает меня эта "ошибка" пересборки
>
> Код теста:
>
> static void
> test_strv_permute (TestRng *tt, gconstpointer user_data)
> {
> g_auto(GStrv) tst = NULL;
> const char *ref[] = {"a", "b", "c", "d", NULL};
> char *empty[] = {NULL};
> guint N;
> guint k = 0;
>
> bolt_strv_permute (NULL);
> bolt_strv_permute (empty);
>
> g_assert_cmpuint (bolt_strv_length (empty), ==, 0U);
>
> tst = g_strdupv ((char **) ref);
>
> /* there are 4! = 24 possible permutations, do it
> * at least N = 4! and pick a rather large threshold
> * instead of a larger N */
> N = (4 * 3 * 2 * 1);
>
> for (guint i = 0; i < N; i++)
> {
> bolt_strv_permute (tst);
> if (bolt_strv_equal ((char **) ref, (char **) tst))
> k++;
> }
>
> g_debug ("permutation-test: %u of %u were equal", k, N);
> g_assert_cmpuint (k, <, 5);
> }
>
> ...
>
> У меня есть смутные подозрения, что в какой-то момент в сборочнице
> кончается энтропия и начинается фигня
Это что, неустранимо вероятностный тест, который, если его запускать
достаточно много раз, обязательно упадёт? А где он добывает себе
рандомизацию?
--
ldv
Подробная информация о списке рассылки Devel