]> git.pld-linux.org Git - packages/syslog-ng.git/blob - syslog-ng-tests-fixes.patch
- release 3 (by relup.sh)
[packages/syslog-ng.git] / syslog-ng-tests-fixes.patch
1 From 1d90d844a39eb25ac3423f663b0409f61a064330 Mon Sep 17 00:00:00 2001
2 From: Kokan <kokaipeter@gmail.com>
3 Date: Thu, 27 Aug 2020 23:44:30 +0200
4 Subject: [PATCH] python/ack_tracker/test: remove dead code
5
6 Signed-off-by: Kokan <kokaipeter@gmail.com>
7 ---
8  modules/python/tests/test_python_ack_tracker.c | 1 -
9  1 file changed, 1 deletion(-)
10
11 diff --git a/modules/python/tests/test_python_ack_tracker.c b/modules/python/tests/test_python_ack_tracker.c
12 index a9ac43f687..2e42e75f3f 100644
13 --- a/modules/python/tests/test_python_ack_tracker.c
14 +++ b/modules/python/tests/test_python_ack_tracker.c
15 @@ -121,7 +121,6 @@ ParameterizedTest(struct AckTrackerFactoryTestParams *param, python_ack_tracker,
16    PyGILState_STATE gstate = PyGILState_Ensure();
17  
18    PyObject *factory_args = Py_BuildValue("(N)", PyCFunction_New(&test_ack_callback, NULL));
19 -  log_msg_new_empty();
20    PyObject *py_ack_tracker_factory_obj = PyObject_CallObject((PyObject *) param->ack_tracker_factory_type,
21                                                               factory_args);
22    Py_XDECREF(factory_args);
23 From 46fa90bdd3adee5bcbb2687cf00c08925c504c07 Mon Sep 17 00:00:00 2001
24 From: Kokan <kokaipeter@gmail.com>
25 Date: Thu, 27 Aug 2020 23:44:30 +0200
26 Subject: [PATCH] python/ack_tracker/test: split parameterized test
27
28 Parameterized tests are the worst in Criterion. Specially with pointers and ASLR.
29
30 Causes test to fail when executed with ASAN:
31 ```
32 ==3181004==ERROR: AddressSanitizer: SEGV on unknown address 0x7faeee7938a8 (pc 0x7f0f053880e7 bp 0x7faeee7938a0 sp 0x7ffe7fe59510 T0)
33 ==3181004==The signal is caused by a READ memory access.
34     #0 0x7f0f053880e7 in PyObject_Call (/usr/lib/libpython3.8.so.1.0+0x1420e7)
35     #1 0x4f7f7c in python_ack_tracker_test_ack_tracker_factory_impl /home/kokan/src/syslog-ng/build/../modules/python/tests/test_python_ack_tracker.c:124:42
36     #2 0x7f0f05225e3e in criterion_internal_test_main (/usr/lib/libcriterion.so.3+0x8e3e)
37     #3 0x4f7e34 in python_ack_tracker_test_ack_tracker_factory_jmp /home/kokan/src/syslog-ng/build/../modules/python/tests/test_python_ack_tracker.c:119:1
38     #4 0x7f0f05225308  (/usr/lib/libcriterion.so.3+0x8308)
39     #5 0x7f0f05236b4c  (/usr/lib/libcriterion.so.3+0x19b4c)
40     #6 0x7f0f04626151 in __libc_start_main (/usr/lib/libc.so.6+0x28151)
41     #7 0x41f43d in _start (/home/kokan/src/syslog-ng/build/modules/python/tests/Debug/test_python_ack_tracker+0x41f43d)
42 ```
43
44 Signed-off-by: Kokan <kokaipeter@gmail.com>
45 ---
46  .../python/tests/test_python_ack_tracker.c    | 39 +++++++++++--------
47  1 file changed, 22 insertions(+), 17 deletions(-)
48
49 diff --git a/modules/python/tests/test_python_ack_tracker.c b/modules/python/tests/test_python_ack_tracker.c
50 index 2e42e75f3f..b573dc0249 100644
51 --- a/modules/python/tests/test_python_ack_tracker.c
52 +++ b/modules/python/tests/test_python_ack_tracker.c
53 @@ -97,31 +97,36 @@ struct AckTrackerFactoryTestParams
54    AckTrackerType expected_ack_tracker_type;
55  };
56  
57 -ParameterizedTestParameters(python_ack_tracker, test_ack_tracker_factory)
58 +Test(python_ack_tracker, test_instant_ack_tracker_factory)
59  {
60 -  static struct AckTrackerFactoryTestParams params[2];
61 +  PyGILState_STATE gstate = PyGILState_Ensure();
62  
63 -  /* PyAckTrackerFactory types and AckTrackerFactoryTestParams are all globals.
64 -   * Static initialization order is undefined.
65 -   */
66 -  params[0] = (struct AckTrackerFactoryTestParams)
67 -  {
68 -    &py_instant_ack_tracker_factory_type, ACK_INSTANT
69 -  };
70 -  params[1] = (struct AckTrackerFactoryTestParams)
71 -  {
72 -    &py_consecutive_ack_tracker_factory_type, ACK_CONSECUTIVE
73 -  };
74 +  PyObject *factory_args = Py_BuildValue("(N)", PyCFunction_New(&test_ack_callback, NULL));
75 +
76 +  PyObject *py_ack_tracker_factory_obj = PyObject_CallObject((PyObject *) &py_instant_ack_tracker_factory_type,
77 +                                                             factory_args);
78 +  Py_XDECREF(factory_args);
79 +
80 +  cr_assert_not_null(py_ack_tracker_factory_obj);
81 +  cr_assert(py_is_ack_tracker_factory(py_ack_tracker_factory_obj));
82 +
83 +  PyAckTrackerFactory *py_ack_tracker_factory = (PyAckTrackerFactory *) py_ack_tracker_factory_obj;
84 +  cr_assert_not_null(py_ack_tracker_factory->ack_tracker_factory);
85 +  cr_assert_eq(ack_tracker_factory_get_type(py_ack_tracker_factory->ack_tracker_factory),
86 +               ACK_INSTANT);
87  
88 -  return cr_make_param_array(struct AckTrackerFactoryTestParams, params, G_N_ELEMENTS(params));
89 +  Py_XDECREF(py_ack_tracker_factory);
90 +  PyGILState_Release(gstate);
91  }
92  
93 -ParameterizedTest(struct AckTrackerFactoryTestParams *param, python_ack_tracker, test_ack_tracker_factory)
94 +
95 +Test(python_ack_tracker, test_consecutive_ack_tracker_factory)
96  {
97    PyGILState_STATE gstate = PyGILState_Ensure();
98  
99    PyObject *factory_args = Py_BuildValue("(N)", PyCFunction_New(&test_ack_callback, NULL));
100 -  PyObject *py_ack_tracker_factory_obj = PyObject_CallObject((PyObject *) param->ack_tracker_factory_type,
101 +
102 +  PyObject *py_ack_tracker_factory_obj = PyObject_CallObject((PyObject *) &py_consecutive_ack_tracker_factory_type,
103                                                               factory_args);
104    Py_XDECREF(factory_args);
105  
106 @@ -131,7 +136,7 @@ ParameterizedTest(struct AckTrackerFactoryTestParams *param, python_ack_tracker,
107    PyAckTrackerFactory *py_ack_tracker_factory = (PyAckTrackerFactory *) py_ack_tracker_factory_obj;
108    cr_assert_not_null(py_ack_tracker_factory->ack_tracker_factory);
109    cr_assert_eq(ack_tracker_factory_get_type(py_ack_tracker_factory->ack_tracker_factory),
110 -               param->expected_ack_tracker_type);
111 +               ACK_CONSECUTIVE);
112  
113    Py_XDECREF(py_ack_tracker_factory);
114    PyGILState_Release(gstate);
This page took 0.035158 seconds and 3 git commands to generate.