def METHOD_NAME(self):
    # enable USDT probe from given PID and verifier generated BPF programs
    u = USDT(pid=int(self.app.pid))
    u.enable_probe(probe="test:probe", fn_name="do_trace")
    b = BPF(text=self.bpf_text, usdt_contexts=[u])
    # processing events
    self.probe_value_1 = 0
    self.probe_value_2 = 0
    self.probe_value_3 = 0
    self.probe_value_other = 0
    def print_event(cpu, data, size):
        result = ct.cast(data, ct.POINTER(ct.c_int)).contents
        if result.value == 1:
            self.probe_value_1 = 1
        elif result.value == 2:
            self.probe_value_2 = 1
        elif result.value == 3:
            self.probe_value_3 = 1
        else:
            self.probe_value_other = 1
    b[b"event"].open_perf_buffer(print_event)
    for i in range(100):
        if (self.probe_value_1 == 0 or
            self.probe_value_2 == 0 or
            self.probe_value_3 == 0 or
            self.probe_value_other != 0):
            b.perf_buffer_poll()
        else:
            break;
    self.assertTrue(self.probe_value_1 != 0)
    self.assertTrue(self.probe_value_2 != 0)
    self.assertTrue(self.probe_value_3 != 0)
    self.assertTrue(self.probe_value_other == 0)