[PATCH 0/4] Add GPIO chardev ioctl decoding
Kent Gibson
warthog618 at gmail.com
Wed Dec 30 00:30:20 UTC 2020
On Tue, Dec 29, 2020 at 11:44:42PM +0300, Dmitry V. Levin wrote:
> On Wed, Dec 23, 2020 at 06:07:44AM +0800, Kent Gibson wrote:
> > This patch set implements decoding of the GPIO character device ioctls
> > first added in Linux v4.8, extended in v5.5 and v5.7, and the v2 ioctls
> > added in v5.10, and a minor update for v5.11.
> >
> > The first patch adds a helper method used to print arrays of uint8,
> > as found in the GPIO API.
> > The second patch adds the decoding of the GPIO ioctls.
> > The third patch adds the decoding of the GPIO v2 ioctls.
> > The fourth patch adds decoding of the
> > GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME flag which is on track to be added
> > in Linux v5.11.
> >
> > Kent Gibson (4):
> > Add print_uint8_array_member() helper
> > Add GPIO ioctl decoding
> > Add GPIO uAPI v2 ioctl decoding
> > Add GPIO uAPI realtime clock flag
> >
> > Makefile.am | 1 +
> > configure.ac | 1 +
> > defs.h | 4 +
> > gpio_ioctl.c | 536 ++++++++++++++++++++++++++++++++++
> > ioctl.c | 4 +
> > util.c | 18 ++
> > xlat/gpio_event_flags.in | 3 +
> > xlat/gpio_handle_flags.in | 8 +
> > xlat/gpio_line_flags.in | 8 +
> > xlat/gpio_v2_line_attr_ids.in | 5 +
> > xlat/gpio_v2_line_flags.in | 14 +
> > 11 files changed, 602 insertions(+)
> > create mode 100644 gpio_ioctl.c
> > create mode 100644 xlat/gpio_event_flags.in
> > create mode 100644 xlat/gpio_handle_flags.in
> > create mode 100644 xlat/gpio_line_flags.in
> > create mode 100644 xlat/gpio_v2_line_attr_ids.in
> > create mode 100644 xlat/gpio_v2_line_flags.in
>
> Thanks for the patch set. Unfortunately, I don't see any changes
> to the test suite in this series. How did you test the new code?
>
Yeah, sorry - not sure how to integrate my tests into your test suite,
and I didn't see anything in the commit requirements mentioning tests
either.
I'm open to suggestions as to what you would like to see from some tests
for this. Testing the whole API is a bear that is probably best left
out of strace itself. Even smoke testing a handful of the ioctls in the
most trivial way is non-trivial to setup - you obviously don't want to
go messing with real hardware so you need to setup mocks which requires
kernel modules that you may not have available etc.
Unless there is some other way to inject ioctls for strace to decode?
I've done my testing using the only code that I know of that exercises the
full GPIO uAPI, including both the v1 and v2 versions - my gpiod Go library
test suite[1], called as:
strace -f --signal=none --trace=ioctl /opt/gpiod/uapi/uapi.test --test.v
which produces [2].
That particular setup happens to be installed in /opt in a qemu buildroot.
The output has a bit of noise from the tests themselves, but I expect you
can spot the strace lines. I don't have anything that checks the
output for correctness though - other than eyeballing.
Cheers,
Kent.
[1]: https://github.com/warthog618/gpiod
[2]:
strace: Process 412 attached
strace: Process 413 attached
strace: Process 414 attached
strace: Process 415 attached
strace: Process 416 attached
[pid 416] +++ exited with 0 +++
strace: Process 419 attached
[pid 419] +++ exited with 0 +++
=== RUN TestRepeatedGetLineHandle
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[1, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0], consumer_label="test-repeated-get-line-handle", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[1, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0], consumer_label="test-repeated-get-line-handle"}) = -1 EBUSY (Device or resource busy)
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[1, 3], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 1], consumer_label="test-repeated-get-line-handle"}) = -1 EBUSY (Device or resource busy)
--- PASS: TestRepeatedGetLineHandle (0.03s)
=== RUN TestRepeatedGetLineEvent
[pid 414] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-repeated-get-line-event", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-repeated-get-line-event"}) = -1 EBUSY (Device or resource busy)
--- PASS: TestRepeatedGetLineEvent (0.02s)
=== RUN TestRepeatedGetLine
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-repeated-get-line", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-repeated-get-line", event_buffer_size=0}) = -1 EBUSY (Device or resource busy)
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-repeated-get-line", event_buffer_size=0}) = -1 EBUSY (Device or resource busy)
--- PASS: TestRepeatedGetLine (0.02s)
=== RUN TestAsIs
=== RUN TestAsIs/input
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-as-is", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="test-as-is"}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="test-as-is", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="test-as-is"}) = 0
=== RUN TestAsIs/output
[pid 411] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="test-as-is", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-2", consumer="test-as-is"}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-2", consumer=""}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="test-as-is", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-2", consumer="test-as-is"}) = 0
--- PASS: TestAsIs (0.06s)
--- PASS: TestAsIs/input (0.03s)
--- PASS: TestAsIs/output (0.02s)
=== RUN TestWatchIsolation
[pid 414] ioctl(3, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
[pid 414] ioctl(7, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-watch-isolation", fd=8}) = 0
[pid 414] ioctl(7, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-3", consumer="test-watch-isolation"}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=3}) = 0
--- PASS: TestWatchIsolation (1.26s)
=== RUN TestBulkEventRead
[pid 414] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-bulk-event-read", fd=7}) = 0
--- PASS: TestBulkEventRead (0.38s)
=== RUN TestBulkEventReadV2
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-bulk-event-read-V2", event_buffer_size=0, fd=7}) = 0
--- PASS: TestBulkEventReadV2 (0.39s)
=== RUN TestWatchInfoVersionLockV1
[pid 414] ioctl(3, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
[pid 414] ioctl(3, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3}) = -1 EPERM (Operation not permitted)
[pid 414] ioctl(3, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=3}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
--- PASS: TestWatchInfoVersionLockV1 (0.02s)
=== RUN TestWatchInfoVersionLockV2
[pid 411] ioctl(3, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3}) = -1 EPERM (Operation not permitted)
[pid 414] ioctl(3, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=3}) = 0
[pid 414] ioctl(3, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
--- PASS: TestWatchInfoVersionLockV2 (0.02s)
=== RUN TestSetConfigEdgeDetection
=== RUN TestSetConfigEdgeDetection/input-to-input
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/input-to-output
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/input-to-rising
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/input-to-falling
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/input-to-both
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/output-to-input
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/output-to-output
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/output-to-rising
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/output-to-falling
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/output-to-both
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/rising-to-input
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/rising-to-output
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/rising-to-rising
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/rising-to-falling
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/rising-to-both
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/falling-to-input
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/falling-to-output
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/falling-to-rising
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/falling-to-falling
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/falling-to-both
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/both-to-input
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/both-to-output
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/both-to-rising
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/both-to-falling
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetConfigEdgeDetection/both-to-both
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-edge-detection", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
--- PASS: TestSetConfigEdgeDetection (56.22s)
--- PASS: TestSetConfigEdgeDetection/input-to-input (3.70s)
--- PASS: TestSetConfigEdgeDetection/input-to-output (3.70s)
--- PASS: TestSetConfigEdgeDetection/input-to-rising (3.10s)
--- PASS: TestSetConfigEdgeDetection/input-to-falling (3.09s)
--- PASS: TestSetConfigEdgeDetection/input-to-both (2.49s)
--- PASS: TestSetConfigEdgeDetection/output-to-input (3.70s)
--- PASS: TestSetConfigEdgeDetection/output-to-output (3.70s)
--- PASS: TestSetConfigEdgeDetection/output-to-rising (3.09s)
--- PASS: TestSetConfigEdgeDetection/output-to-falling (3.09s)
--- PASS: TestSetConfigEdgeDetection/output-to-both (2.49s)
--- PASS: TestSetConfigEdgeDetection/rising-to-input (2.49s)
--- PASS: TestSetConfigEdgeDetection/rising-to-output (2.48s)
--- PASS: TestSetConfigEdgeDetection/rising-to-rising (1.88s)
--- PASS: TestSetConfigEdgeDetection/rising-to-falling (1.88s)
--- PASS: TestSetConfigEdgeDetection/rising-to-both (1.28s)
--- PASS: TestSetConfigEdgeDetection/falling-to-input (2.49s)
--- PASS: TestSetConfigEdgeDetection/falling-to-output (2.49s)
--- PASS: TestSetConfigEdgeDetection/falling-to-rising (1.88s)
--- PASS: TestSetConfigEdgeDetection/falling-to-falling (1.88s)
--- PASS: TestSetConfigEdgeDetection/falling-to-both (1.28s)
--- PASS: TestSetConfigEdgeDetection/both-to-input (1.29s)
--- PASS: TestSetConfigEdgeDetection/both-to-output (1.27s)
--- PASS: TestSetConfigEdgeDetection/both-to-rising (0.68s)
--- PASS: TestSetConfigEdgeDetection/both-to-falling (0.68s)
--- PASS: TestSetConfigEdgeDetection/both-to-both (0.07s)
=== RUN TestEventBufferOverflow
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-event-buffer-overflow", fd=7}) = 0
[pid 411] ioctl(7, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
--- PASS: TestEventBufferOverflow (0.65s)
=== RUN TestEventBufferOverflowV2
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-event-buffer-overflow-V2", event_buffer_size=0, fd=7}) = 0
--- PASS: TestEventBufferOverflowV2 (0.66s)
=== RUN TestSetConfigDebouncedEdges
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-set-config-debounced-edges", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x1}]}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x1}]}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x1}]}) = 0
--- PASS: TestSetConfigDebouncedEdges (0.41s)
=== RUN TestGetLineDebouncedEdges
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x1}]}, consumer="test-get-line-debounced-edges", event_buffer_size=0, fd=7}) = 0
--- PASS: TestGetLineDebouncedEdges (0.34s)
=== RUN TestSetConfigEdgeDetectionPolarity
[pid 411] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-config-edge-detection-", event_buffer_size=0, fd=7}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
--- PASS: TestSetConfigEdgeDetectionPolarity (2.82s)
=== RUN TestOutputSets
kernel_test.go:781: contains known failures as of 5.4-rc1
--- SKIP: TestOutputSets (0.01s)
=== RUN TestEdgeDetectionLinesMax
strace: Process 470 attached
[pid 470] +++ exited with 0 +++
strace: Process 474 attached
[pid 474] +++ exited with 1 +++
strace: Process 475 attached
[pid 475] +++ exited with 0 +++
[pid 414] ioctl(3, GPIO_V2_GET_LINE_IOCTL, {num_lines=64, offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, ...], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-edge-detection-lines-max", event_buffer_size=0, fd=7}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xf, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1f, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3f, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7f, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1ffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3ffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7ffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1fffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3fffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x7fffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffffff, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffffe, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffffc, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffff8, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffff0, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffffe0, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffffc0, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffff80, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffff00, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffe00, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffffc00, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffff800, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffff000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffe000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffffc000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffff8000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffff0000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffe0000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffffc0000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffff80000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffff00000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffe00000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffffc00000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffff800000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffff000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffe000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffffc000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffff8000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffff0000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffe0000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffffc0000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffff80000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffff00000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffe00000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffffc00000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffff800000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffff000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffe000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffffc000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffff8000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffff0000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffe0000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffffc0000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffff80000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffff00000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffe00000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffffc00000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffff800000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffff000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffe000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfffc000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfff8000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfff0000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffe0000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xffc0000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xff80000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xff00000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfe00000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xfc00000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xf800000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xf000000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xe000000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xc000000000000000, mask=0xffffffffffffffff}) = 0
[pid 411] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x8000000000000000, mask=0xffffffffffffffff}) = 0
[pid 414] ioctl(7, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0xffffffffffffffff}) = 0
strace: Process 540 attached
[pid 540] +++ exited with 0 +++
strace: Process 541 attached
[pid 541] +++ exited with 1 +++
strace: Process 542 attached
[pid 542] +++ exited with 0 +++
--- PASS: TestEdgeDetectionLinesMax (3.21s)
=== RUN TestGetChipInfo
strace: Process 543 attached
[pid 543] +++ exited with 0 +++
strace: Process 544 attached
[pid 544] +++ exited with 1 +++
strace: Process 545 attached
[pid 545] +++ exited with 0 +++
=== RUN TestGetChipInfo/gpiochip0
[pid 411] ioctl(3, GPIO_GET_CHIPINFO_IOCTL, {name="gpiochip0", label="gpio-mockup-A", lines=4}) = 0
=== RUN TestGetChipInfo/gpiochip1
[pid 411] ioctl(3, GPIO_GET_CHIPINFO_IOCTL, {name="gpiochip1", label="gpio-mockup-B", lines=8}) = 0
[pid 411] ioctl(0, GPIO_GET_CHIPINFO_IOCTL, 0xc0000bbd84) = -1 ENOTTY (Inappropriate ioctl for device)
--- PASS: TestGetChipInfo (0.77s)
--- PASS: TestGetChipInfo/gpiochip0 (0.01s)
--- PASS: TestGetChipInfo/gpiochip1 (0.01s)
=== RUN TestGetLineInfo
strace: Process 546 attached
[pid 546] +++ exited with 0 +++
strace: Process 547 attached
[pid 547] +++ exited with 1 +++
strace: Process 548 attached
[pid 548] +++ exited with 0 +++
=== RUN TestGetLineInfo/gpiochip0-0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=0, flags=0, name="gpio-mockup-A-0", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip0-1
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=0, name="gpio-mockup-A-1", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip0-2
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip0-3
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip0-4
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=4}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineInfo/gpiochip1-0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=0, flags=0, name="gpio-mockup-B-0", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-1
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=0, name="gpio-mockup-B-1", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-2
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-B-2", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-3
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-B-3", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-4
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=4, flags=0, name="gpio-mockup-B-4", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-5
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=5, flags=0, name="gpio-mockup-B-5", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-6
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=6, flags=0, name="gpio-mockup-B-6", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-7
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=7, flags=0, name="gpio-mockup-B-7", consumer=""}) = 0
=== RUN TestGetLineInfo/gpiochip1-8
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=8}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1}) = -1 ENOTTY (Inappropriate ioctl for device)
--- PASS: TestGetLineInfo (0.88s)
--- PASS: TestGetLineInfo/gpiochip0-0 (0.01s)
--- PASS: TestGetLineInfo/gpiochip0-1 (0.01s)
--- PASS: TestGetLineInfo/gpiochip0-2 (0.01s)
--- PASS: TestGetLineInfo/gpiochip0-3 (0.01s)
--- PASS: TestGetLineInfo/gpiochip0-4 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-0 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-1 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-2 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-3 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-4 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-5 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-6 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-7 (0.01s)
--- PASS: TestGetLineInfo/gpiochip1-8 (0.01s)
=== RUN TestGetLineEvent
=== RUN TestGetLineEvent/as-is
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=0, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="as-is"}) = 0
=== RUN TestGetLineEvent/atv-lo
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_ACTIVE_LOW, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="atv-lo", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-B-2", consumer="atv-lo"}) = 0
=== RUN TestGetLineEvent/input
[pid 414] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="input"}) = 0
=== RUN TestGetLineEvent/input_pull-up
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input pull-up", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_UP, name="gpio-mockup-A-2", consumer="input pull-up"}) = 0
=== RUN TestGetLineEvent/input_pull-down
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input pull-down", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_DOWN, name="gpio-mockup-A-2", consumer="input pull-down"}) = 0
=== RUN TestGetLineEvent/input_bias_disable
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_DISABLE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input bias disable", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_DISABLE, name="gpio-mockup-A-2", consumer="input bias disable"}) = 0
=== RUN TestGetLineEvent/as-is_pull-up
[pid 414] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_BIAS_PULL_UP, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is pull-up", fd=7}) = 0
[pid 414] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_UP, name="gpio-mockup-A-2", consumer="as-is pull-up"}) = 0
=== RUN TestGetLineEvent/as-is_pull-down
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is pull-down", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_DOWN, name="gpio-mockup-A-2", consumer="as-is pull-down"}) = 0
=== RUN TestGetLineEvent/as-is_bias_disable
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_BIAS_DISABLE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is bias disable", fd=7}) = 0
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_DISABLE, name="gpio-mockup-A-2", consumer="as-is bias disable"}) = 0
=== RUN TestGetLineEvent/output
[pid 411] ioctl(3, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_OUTPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="output"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(3, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/oorange
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=6, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="oorange"}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineEvent/input_drain
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input drain"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/input_source
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_SOURCE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="input source"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/as-is_drain
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_OPEN_DRAIN, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is drain"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/as-is_source
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_OPEN_SOURCE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="as-is source"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/bias_disable_and_pull-up
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_DISABLE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="bias disable and pull-up"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/bias_disable_and_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN|GPIOHANDLE_REQUEST_BIAS_DISABLE, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="bias disable and pull-down"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineEvent/pull-up_and_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="pull-up and pull-down"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
--- PASS: TestGetLineEvent (0.26s)
--- PASS: TestGetLineEvent/as-is (0.02s)
--- PASS: TestGetLineEvent/atv-lo (0.01s)
--- PASS: TestGetLineEvent/input (0.01s)
--- PASS: TestGetLineEvent/input_pull-up (0.02s)
--- PASS: TestGetLineEvent/input_pull-down (0.02s)
--- PASS: TestGetLineEvent/input_bias_disable (0.02s)
--- PASS: TestGetLineEvent/as-is_pull-up (0.01s)
--- PASS: TestGetLineEvent/as-is_pull-down (0.01s)
--- PASS: TestGetLineEvent/as-is_bias_disable (0.01s)
--- PASS: TestGetLineEvent/output (0.01s)
--- PASS: TestGetLineEvent/oorange (0.01s)
--- PASS: TestGetLineEvent/input_drain (0.01s)
--- PASS: TestGetLineEvent/input_source (0.01s)
--- PASS: TestGetLineEvent/as-is_drain (0.01s)
--- PASS: TestGetLineEvent/as-is_source (0.01s)
--- PASS: TestGetLineEvent/bias_disable_and_pull-up (0.01s)
--- PASS: TestGetLineEvent/bias_disable_and_pull-down (0.01s)
--- PASS: TestGetLineEvent/pull-up_and_pull-down (0.01s)
=== RUN TestGetLineHandle
=== RUN TestGetLineHandle/as-is
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="as-is", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="as-is"}) = 0
=== RUN TestGetLineHandle/atv-lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0], consumer_label="atv-lo", fd=3}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-B-2", consumer="atv-lo"}) = 0
=== RUN TestGetLineHandle/input
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="input", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="input"}) = 0
=== RUN TestGetLineHandle/input_pull-up
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP, default_values=[0], consumer_label="input pull-up", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_UP, name="gpio-mockup-A-2", consumer="input pull-up"}) = 0
=== RUN TestGetLineHandle/input_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0], consumer_label="input pull-down", fd=3}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=3, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_DOWN, name="gpio-mockup-A-3", consumer="input pull-down"}) = 0
=== RUN TestGetLineHandle/input_bias_disable
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="input bias disable", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=3, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_DISABLE, name="gpio-mockup-A-3", consumer="input bias disable"}) = 0
=== RUN TestGetLineHandle/output
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="output", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-2", consumer="output"}) = 0
=== RUN TestGetLineHandle/output_drain
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0], consumer_label="output drain", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_OPEN_DRAIN, name="gpio-mockup-A-2", consumer="output drain"}) = 0
=== RUN TestGetLineHandle/output_source
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0], consumer_label="output source", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=3, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_OPEN_SOURCE, name="gpio-mockup-A-3", consumer="output source"}) = 0
=== RUN TestGetLineHandle/output_pull-up
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP, default_values=[0], consumer_label="output pull-up", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_BIAS_PULL_UP, name="gpio-mockup-A-1", consumer="output pull-up"}) = 0
=== RUN TestGetLineHandle/output_pull-down
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0], consumer_label="output pull-down", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_BIAS_PULL_DOWN, name="gpio-mockup-A-2", consumer="output pull-down"}) = 0
=== RUN TestGetLineHandle/output_bias_disable
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="output bias disable", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_BIAS_DISABLE, name="gpio-mockup-A-2", consumer="output bias disable"}) = 0
=== RUN TestGetLineHandle/both_io
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="both io"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/overlength
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=5, lineoffsets=[0, 1, 2, 3, 4], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0, 0, 0], consumer_label="overlength"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=0, flags=0, name="gpio-mockup-A-0", consumer=""}) = 0
=== RUN TestGetLineHandle/oorange
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[6], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="oorange"}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineHandle/input_drain
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0], consumer_label="input drain"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=0, name="gpio-mockup-A-1", consumer=""}) = 0
=== RUN TestGetLineHandle/input_source
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0], consumer_label="input source"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/as-is_drain
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0], consumer_label="as-is drain"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/as-is_source
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0], consumer_label="as-is source"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=0, name="gpio-mockup-A-1", consumer=""}) = 0
=== RUN TestGetLineHandle/drain_source
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0], consumer_label="drain source"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/as-is_pull-up
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_BIAS_PULL_UP, default_values=[0], consumer_label="as-is pull-up"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=0, name="gpio-mockup-A-1", consumer=""}) = 0
=== RUN TestGetLineHandle/as-is_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0], consumer_label="as-is pull-down"}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/as-is_bias_disable
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="as-is bias disable"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/bias_disable_and_pull-up
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="bias disable and pull-up"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/bias_disable_and_pull-down
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="bias disable and pull-down"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/pull-up_and_pull-down
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0], consumer_label="pull-up and pull-down"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
=== RUN TestGetLineHandle/all_bias_flags
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0], consumer_label="all bias flags"}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=0, name="gpio-mockup-A-2", consumer=""}) = 0
--- PASS: TestGetLineHandle (0.36s)
--- PASS: TestGetLineHandle/as-is (0.01s)
--- PASS: TestGetLineHandle/atv-lo (0.01s)
--- PASS: TestGetLineHandle/input (0.01s)
--- PASS: TestGetLineHandle/input_pull-up (0.01s)
--- PASS: TestGetLineHandle/input_pull-down (0.01s)
--- PASS: TestGetLineHandle/input_bias_disable (0.01s)
--- PASS: TestGetLineHandle/output (0.01s)
--- PASS: TestGetLineHandle/output_drain (0.01s)
--- PASS: TestGetLineHandle/output_source (0.01s)
--- PASS: TestGetLineHandle/output_pull-up (0.01s)
--- PASS: TestGetLineHandle/output_pull-down (0.01s)
--- PASS: TestGetLineHandle/output_bias_disable (0.01s)
--- PASS: TestGetLineHandle/both_io (0.01s)
--- PASS: TestGetLineHandle/overlength (0.01s)
--- PASS: TestGetLineHandle/oorange (0.01s)
--- PASS: TestGetLineHandle/input_drain (0.01s)
--- PASS: TestGetLineHandle/input_source (0.01s)
--- PASS: TestGetLineHandle/as-is_drain (0.01s)
--- PASS: TestGetLineHandle/as-is_source (0.01s)
--- PASS: TestGetLineHandle/drain_source (0.01s)
--- PASS: TestGetLineHandle/as-is_pull-up (0.01s)
--- PASS: TestGetLineHandle/as-is_pull-down (0.01s)
--- PASS: TestGetLineHandle/as-is_bias_disable (0.01s)
--- PASS: TestGetLineHandle/bias_disable_and_pull-up (0.01s)
--- PASS: TestGetLineHandle/bias_disable_and_pull-down (0.01s)
--- PASS: TestGetLineHandle/pull-up_and_pull-down (0.01s)
--- PASS: TestGetLineHandle/all_bias_flags (0.01s)
=== RUN TestGetLineValues
=== RUN TestGetLineValues/as-is_atv-lo_lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/as-is_atv-lo_hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/as-is_lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/as-is_hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=0, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/output_lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/output_hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/both_lo
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=0, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/both_hi
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=0, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/falling_lo
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=0, eventflags=GPIOEVENT_REQUEST_FALLING_EDGE, consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/falling_hi
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=0, eventflags=GPIOEVENT_REQUEST_FALLING_EDGE, consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/rising_lo
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=0, eventflags=GPIOEVENT_REQUEST_RISING_EDGE, consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/rising_hi
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=0, eventflags=GPIOEVENT_REQUEST_RISING_EDGE, consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_2a
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[0, 1], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_2b
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[2, 1], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_3a
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[0, 1, 2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_3b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[0, 2, 1], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_4a
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=4, lineoffsets=[0, 1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_4b
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=4, lineoffsets=[3, 2, 1, 0], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_8a
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=8, lineoffsets=[0, 1, 2, 3, 4, 5, 6, 7], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0, 0, 0, 0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/input_8b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=8, lineoffsets=[3, 2, 1, 0, 4, 5, 6, 7], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 0, 0, 0, 0, 0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestGetLineValues/atv-lo_8b
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=7, lineoffsets=[3, 2, 1, 0, 4, 6, 7], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 0, 0, 0, 0, 0, 0], consumer_label="test-get-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_GET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIOHANDLE_GET_LINE_VALUES_IOCTL, 0xc0000bb700) = -1 EBADF (Bad file descriptor)
--- PASS: TestGetLineValues (0.45s)
--- PASS: TestGetLineValues/as-is_atv-lo_lo (0.01s)
--- PASS: TestGetLineValues/as-is_atv-lo_hi (0.01s)
--- PASS: TestGetLineValues/as-is_lo (0.01s)
--- PASS: TestGetLineValues/as-is_hi (0.01s)
--- PASS: TestGetLineValues/input_lo (0.01s)
--- PASS: TestGetLineValues/input_hi (0.01s)
--- PASS: TestGetLineValues/output_lo (0.01s)
--- PASS: TestGetLineValues/output_hi (0.01s)
--- PASS: TestGetLineValues/both_lo (0.01s)
--- PASS: TestGetLineValues/both_hi (0.01s)
--- PASS: TestGetLineValues/falling_lo (0.01s)
--- PASS: TestGetLineValues/falling_hi (0.01s)
--- PASS: TestGetLineValues/rising_lo (0.01s)
--- PASS: TestGetLineValues/rising_hi (0.01s)
--- PASS: TestGetLineValues/input_2a (0.01s)
--- PASS: TestGetLineValues/input_2b (0.01s)
--- PASS: TestGetLineValues/input_3a (0.01s)
--- PASS: TestGetLineValues/input_3b (0.01s)
--- PASS: TestGetLineValues/input_4a (0.01s)
--- PASS: TestGetLineValues/input_4b (0.01s)
--- PASS: TestGetLineValues/input_8a (0.01s)
--- PASS: TestGetLineValues/input_8b (0.01s)
--- PASS: TestGetLineValues/atv-lo_8b (0.01s)
=== RUN TestSetLineValues
=== RUN TestSetLineValues/output_atv-lo_lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_atv-lo_hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/as-is_lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/as-is_hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_2a
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[0, 1], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_2b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=2, lineoffsets=[2, 1], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_3a
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[0, 1, 2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_3b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[0, 2, 1], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_4a
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=4, lineoffsets=[0, 1, 2, 3], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_4b
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=4, lineoffsets=[3, 2, 1, 0], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_8a
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=8, lineoffsets=[0, 1, 2, 3, 4, 5, 6, 7], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0, 0, 0, 0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/output_8b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=8, lineoffsets=[3, 2, 1, 0, 4, 5, 6, 7], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0, 0, 0, 0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/atv-lo_8b
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=8, lineoffsets=[3, 2, 1, 0, 4, 5, 6, 7], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 0, 0, 0, 0, 0, 0, 0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
=== RUN TestSetLineValues/input_lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EPERM (Operation not permitted)
=== RUN TestSetLineValues/input_hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[1], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="test-set-line-values", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EPERM (Operation not permitted)
[pid 414] ioctl(0, GPIOHANDLE_SET_LINE_VALUES_IOCTL, {values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EBADF (Bad file descriptor)
--- PASS: TestSetLineValues (0.40s)
--- PASS: TestSetLineValues/output_atv-lo_lo (0.02s)
--- PASS: TestSetLineValues/output_atv-lo_hi (0.01s)
--- PASS: TestSetLineValues/as-is_lo (0.01s)
--- PASS: TestSetLineValues/as-is_hi (0.01s)
--- PASS: TestSetLineValues/output_lo (0.01s)
--- PASS: TestSetLineValues/output_hi (0.01s)
--- PASS: TestSetLineValues/output_2a (0.02s)
--- PASS: TestSetLineValues/output_2b (0.02s)
--- PASS: TestSetLineValues/output_3a (0.02s)
--- PASS: TestSetLineValues/output_3b (0.02s)
--- PASS: TestSetLineValues/output_4a (0.03s)
--- PASS: TestSetLineValues/output_4b (0.03s)
--- PASS: TestSetLineValues/output_8a (0.04s)
--- PASS: TestSetLineValues/output_8b (0.04s)
--- PASS: TestSetLineValues/atv-lo_8b (0.04s)
--- PASS: TestSetLineValues/input_lo (0.01s)
--- PASS: TestSetLineValues/input_hi (0.01s)
=== RUN TestSetLineHandleConfig
=== RUN TestSetLineHandleConfig/in_to_out
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0, 1, 1], consumer_label="in to out", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-B-1", consumer="in to out"}) = 0
=== RUN TestSetLineHandleConfig/out_to_in
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[1], consumer_label="out to in", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=2, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-2", consumer="out to in"}) = 0
=== RUN TestSetLineHandleConfig/as-is_atv-hi_to_as-is_atv-lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=0, default_values=[1, 0, 1], consumer_label="as-is atv-hi to as-is atv-lo", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-A-1", consumer="as-is atv-hi to as-is atv-lo"}) = 0
=== RUN TestSetLineHandleConfig/as-is_atv-lo_to_as-is_atv-hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1], consumer_label="as-is atv-lo to as-is atv-hi", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=0, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-1", consumer="as-is atv-lo to as-is atv-hi"}) = 0
=== RUN TestSetLineHandleConfig/input_atv-lo_to_input_atv-hi
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1], consumer_label="input atv-lo to input atv-hi", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-1", consumer="input atv-lo to input atv-hi"}) = 0
=== RUN TestSetLineHandleConfig/input_atv-hi_to_input_atv-lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[1, 0, 1], consumer_label="input atv-hi to input atv-lo", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-A-1", consumer="input atv-hi to input atv-lo"}) = 0
=== RUN TestSetLineHandleConfig/output_atv-lo_to_output_atv-hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1], consumer_label="output atv-lo to output atv-hi", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-1", consumer="output atv-lo to output atv-hi"}) = 0
=== RUN TestSetLineHandleConfig/output_atv-hi_to_output_atv-lo
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[1, 0, 1], consumer_label="output atv-hi to output atv-lo", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-A-1", consumer="output atv-hi to output atv-lo"}) = 0
=== RUN TestSetLineHandleConfig/input_atv-lo_to_as-is_atv-hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1], consumer_label="input atv-lo to as-is atv-hi", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=0, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL, name="gpio-mockup-A-1", consumer="input atv-lo to as-is atv-hi"}) = 0
=== RUN TestSetLineHandleConfig/input_atv-hi_to_as-is_atv-lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[1, 0, 1], consumer_label="input atv-hi to as-is atv-lo", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-A-1", consumer="input atv-hi to as-is atv-lo"}) = 0
=== RUN TestSetLineHandleConfig/input_pull-up_to_input_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP, default_values=[0, 0, 0], consumer_label="input pull-up to input pull-dow"..., fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 411] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_DOWN, name="gpio-mockup-A-1", consumer="input pull-up to input pull-dow"}) = 0
=== RUN TestSetLineHandleConfig/input_pull-down_to_input_pull-up
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0, 0, 0], consumer_label="input pull-down to input pull-u"..., fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP, default_values=[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_BIAS_PULL_UP, name="gpio-mockup-A-1", consumer="input pull-down to input pull-u"}) = 0
=== RUN TestSetLineHandleConfig/output_atv-lo_to_as-is_atv-hi
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[1, 0, 1], consumer_label="output atv-lo to as-is atv-hi", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=0, default_values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT, name="gpio-mockup-A-1", consumer="output atv-lo to as-is atv-hi"}) = 0
=== RUN TestSetLineHandleConfig/output_atv-hi_to_as-is_atv-lo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=3, lineoffsets=[1, 2, 3], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[1, 0, 1], consumer_label="output atv-hi to as-is atv-lo", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_IOCTL, {line_offset=1, flags=GPIOLINE_FLAG_KERNEL|GPIOLINE_FLAG_IS_OUT|GPIOLINE_FLAG_ACTIVE_LOW, name="gpio-mockup-A-1", consumer="output atv-hi to as-is atv-lo"}) = 0
=== RUN TestSetLineHandleConfig/input_drain
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="input drain", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/input_source
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="input source", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/as-is_drain
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="as-is drain", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/as-is_source
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=0, default_values=[0], consumer_label="as-is source", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/drain_source
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="drain source", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/pull-up_and_pull-down
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="pull-up and pull-down", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/bias_disable_and_pull-up
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="bias disable and pull-up", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/bias_disable_and_pull-down
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="bias disable and pull-down", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineHandleConfig/all_bias_flags
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[2], flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0], consumer_label="all bias flags", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT|GPIOHANDLE_REQUEST_BIAS_PULL_UP|GPIOHANDLE_REQUEST_BIAS_PULL_DOWN|GPIOHANDLE_REQUEST_BIAS_DISABLE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
--- PASS: TestSetLineHandleConfig (0.66s)
--- PASS: TestSetLineHandleConfig/in_to_out (0.04s)
--- PASS: TestSetLineHandleConfig/out_to_in (0.02s)
--- PASS: TestSetLineHandleConfig/as-is_atv-hi_to_as-is_atv-lo (0.04s)
--- PASS: TestSetLineHandleConfig/as-is_atv-lo_to_as-is_atv-hi (0.04s)
--- PASS: TestSetLineHandleConfig/input_atv-lo_to_input_atv-hi (0.04s)
--- PASS: TestSetLineHandleConfig/input_atv-hi_to_input_atv-lo (0.04s)
--- PASS: TestSetLineHandleConfig/output_atv-lo_to_output_atv-hi (0.04s)
--- PASS: TestSetLineHandleConfig/output_atv-hi_to_output_atv-lo (0.04s)
--- PASS: TestSetLineHandleConfig/input_atv-lo_to_as-is_atv-hi (0.04s)
--- PASS: TestSetLineHandleConfig/input_atv-hi_to_as-is_atv-lo (0.04s)
--- PASS: TestSetLineHandleConfig/input_pull-up_to_input_pull-down (0.03s)
--- PASS: TestSetLineHandleConfig/input_pull-down_to_input_pull-up (0.03s)
--- PASS: TestSetLineHandleConfig/output_atv-lo_to_as-is_atv-hi (0.03s)
--- PASS: TestSetLineHandleConfig/output_atv-hi_to_as-is_atv-lo (0.04s)
--- PASS: TestSetLineHandleConfig/input_drain (0.01s)
--- PASS: TestSetLineHandleConfig/input_source (0.01s)
--- PASS: TestSetLineHandleConfig/as-is_drain (0.01s)
--- PASS: TestSetLineHandleConfig/as-is_source (0.01s)
--- PASS: TestSetLineHandleConfig/drain_source (0.01s)
--- PASS: TestSetLineHandleConfig/pull-up_and_pull-down (0.01s)
--- PASS: TestSetLineHandleConfig/bias_disable_and_pull-up (0.01s)
--- PASS: TestSetLineHandleConfig/bias_disable_and_pull-down (0.01s)
--- PASS: TestSetLineHandleConfig/all_bias_flags (0.01s)
=== RUN TestSetLineEventConfig
=== RUN TestSetLineEventConfig/low_to_high
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="low to high", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=0, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineEventConfig/high_to_low
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="high to low", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineEventConfig/in_to_out
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=2, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="in to out", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_OUTPUT, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineEventConfig/drain
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=3, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="drain", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_DRAIN, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineEventConfig/source
[pid 414] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=3, handleflags=GPIOHANDLE_REQUEST_INPUT, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="source", fd=3}) = 0
[pid 414] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_OPEN_SOURCE, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = -1 EINVAL (Invalid argument)
--- PASS: TestSetLineEventConfig (0.08s)
--- PASS: TestSetLineEventConfig/low_to_high (0.02s)
--- PASS: TestSetLineEventConfig/high_to_low (0.01s)
--- PASS: TestSetLineEventConfig/in_to_out (0.01s)
--- PASS: TestSetLineEventConfig/drain (0.02s)
--- PASS: TestSetLineEventConfig/source (0.01s)
=== RUN TestWatchLineInfo
[pid 411] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="testwatch", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=5}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3}) = -1 EBUSY (Device or resource busy)
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="testwatch", fd=3}) = 0
[pid 411] ioctl(3, GPIOHANDLE_SET_CONFIG_IOCTL, {flags=GPIOHANDLE_REQUEST_ACTIVE_LOW, default_values=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]}) = 0
--- PASS: TestWatchLineInfo (1.56s)
=== RUN TestUnwatchLineInfo
[pid 414] ioctl(0, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=5}) = -1 EINVAL (Invalid argument)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEHANDLE_IOCTL, {lines=1, lineoffsets=[3], flags=GPIOHANDLE_REQUEST_INPUT, default_values=[0], consumer_label="", fd=3}) = 0
[pid 414] ioctl(0, GPIO_GET_LINEINFO_UNWATCH_IOCTL, {offset=3}) = -1 EBUSY (Device or resource busy)
[pid 414] ioctl(0, GPIO_GET_LINEINFO_WATCH_IOCTL, {line_offset=3, flags=0, name="gpio-mockup-A-3", consumer=""}) = 0
--- PASS: TestUnwatchLineInfo (0.64s)
=== RUN TestReadEvent
[pid 411] ioctl(0, GPIO_GET_LINEEVENT_IOCTL, {lineoffset=1, handleflags=GPIOHANDLE_REQUEST_INPUT|GPIOHANDLE_REQUEST_ACTIVE_LOW, eventflags=GPIOEVENT_REQUEST_BOTH_EDGES, consumer_label="", fd=3}) = 0
--- PASS: TestReadEvent (0.33s)
=== RUN TestBytesToString
--- PASS: TestBytesToString (0.00s)
=== RUN TestLineFlags
--- PASS: TestLineFlags (0.00s)
=== RUN TestHandleFlags
--- PASS: TestHandleFlags (0.00s)
=== RUN TestEventFlags
--- PASS: TestEventFlags (0.00s)
=== RUN TestGetLineInfoV2
strace: Process 570 attached
[pid 570] +++ exited with 0 +++
strace: Process 574 attached
[pid 574] +++ exited with 1 +++
strace: Process 575 attached
[pid 575] +++ exited with 0 +++
=== RUN TestGetLineInfoV2/gpiochip0-0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=0, name="gpio-mockup-A-0", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip0-1
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip0-2
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip0-3
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip0-4
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=4}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineInfoV2/gpiochip1-0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=0, name="gpio-mockup-B-0", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-1
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-2
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-B-2", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-3
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-B-3", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-4
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=4, name="gpio-mockup-B-4", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-5
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=5, name="gpio-mockup-B-5", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-6
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=6, name="gpio-mockup-B-6", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-7
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=7, name="gpio-mockup-B-7", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLineInfoV2/gpiochip1-8
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=8}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1}) = -1 EBADF (Bad file descriptor)
--- PASS: TestGetLineInfoV2 (0.90s)
--- PASS: TestGetLineInfoV2/gpiochip0-0 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip0-1 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip0-2 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip0-3 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip0-4 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-0 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-1 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-2 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-3 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-4 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-5 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-6 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-7 (0.01s)
--- PASS: TestGetLineInfoV2/gpiochip1-8 (0.01s)
=== RUN TestGetLine
strace: Process 576 attached
[pid 576] +++ exited with 0 +++
strace: Process 577 attached
[pid 577] +++ exited with 1 +++
strace: Process 578 attached
[pid 578] +++ exited with 0 +++
=== RUN TestGetLine/as-is
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=0, num_attrs=0}, consumer="as-is", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="as-is", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLine/atv-lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-B-2", consumer="atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLine/input
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="input", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestGetLine/input_pull-up
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}, consumer="input pull-up", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="input pull-up", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
=== RUN TestGetLine/input_pull-down
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}, consumer="input pull-down", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="input pull-down", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}) = 0
=== RUN TestGetLine/input_bias_disable
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}, consumer="input bias disable", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="input bias disable", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}) = 0
=== RUN TestGetLine/input_edge_rising
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="input edge rising", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="input edge rising", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestGetLine/input_edge_falling
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="input edge falling", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input edge falling", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestGetLine/input_edge_both
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="input edge both", event_buffer_size=42, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="input edge both", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestGetLine/output
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="output", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="output", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestGetLine/output_drain
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}, consumer="output drain", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="output drain", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}) = 0
=== RUN TestGetLine/output_source
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}, consumer="output source", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="output source", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}) = 0
=== RUN TestGetLine/output_pull-up
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}, consumer="output pull-up", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output pull-up", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
=== RUN TestGetLine/output_pull-down
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}, consumer="output pull-down", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=2, name="gpio-mockup-A-2", consumer="output pull-down", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}) = 0
=== RUN TestGetLine/output_bias_disabled
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}, consumer="output bias disabled", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output bias disabled", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}) = 0
=== RUN TestGetLine/overlength
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=5, offsets=[0, 1, 2, 3, 4], config={flags=0, num_attrs=0}, consumer="overlength", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=0, name="gpio-mockup-A-0", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
--- PASS: TestGetLine (0.99s)
--- PASS: TestGetLine/as-is (0.01s)
--- PASS: TestGetLine/atv-lo (0.01s)
--- PASS: TestGetLine/input (0.01s)
--- PASS: TestGetLine/input_pull-up (0.01s)
--- PASS: TestGetLine/input_pull-down (0.01s)
--- PASS: TestGetLine/input_bias_disable (0.01s)
--- PASS: TestGetLine/input_edge_rising (0.01s)
--- PASS: TestGetLine/input_edge_falling (0.02s)
--- PASS: TestGetLine/input_edge_both (0.01s)
--- PASS: TestGetLine/output (0.01s)
--- PASS: TestGetLine/output_drain (0.01s)
--- PASS: TestGetLine/output_source (0.01s)
--- PASS: TestGetLine/output_pull-up (0.01s)
--- PASS: TestGetLine/output_pull-down (0.01s)
--- PASS: TestGetLine/output_bias_disabled (0.01s)
--- PASS: TestGetLine/overlength (0.01s)
=== RUN TestGetLineValidation
=== RUN TestGetLineValidation/oorange_offset
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[6], config={flags=0, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/input_drain
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/input_source
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_drain
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_source
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_pull-up
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_pull-down
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_bias_disabled
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/output_edge_rising
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/output_edge_falling
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/output_edge_both
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_edge_rising
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_edge_falling
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/as-is_edge_both
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
=== RUN TestGetLineValidation/non-zero_padding
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=0, num_attrs=0, padding=[0x1, 0, 0, 0, 0]}, consumer="test-get-line-validation", event_buffer_size=0}) = -1 EINVAL (Invalid argument)
--- PASS: TestGetLineValidation (0.11s)
--- PASS: TestGetLineValidation/oorange_offset (0.01s)
--- PASS: TestGetLineValidation/input_drain (0.00s)
--- PASS: TestGetLineValidation/input_source (0.00s)
--- PASS: TestGetLineValidation/as-is_drain (0.00s)
--- PASS: TestGetLineValidation/as-is_source (0.01s)
--- PASS: TestGetLineValidation/as-is_pull-up (0.00s)
--- PASS: TestGetLineValidation/as-is_pull-down (0.00s)
--- PASS: TestGetLineValidation/as-is_bias_disabled (0.00s)
--- PASS: TestGetLineValidation/output_edge_rising (0.01s)
--- PASS: TestGetLineValidation/output_edge_falling (0.01s)
--- PASS: TestGetLineValidation/output_edge_both (0.00s)
--- PASS: TestGetLineValidation/as-is_edge_rising (0.00s)
--- PASS: TestGetLineValidation/as-is_edge_falling (0.00s)
--- PASS: TestGetLineValidation/as-is_edge_both (0.00s)
--- PASS: TestGetLineValidation/non-zero_padding (0.01s)
=== RUN TestGetLineValuesV2
=== RUN TestGetLineValuesV2/as-is_atv-lo_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/as-is_atv-lo_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/as-is_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=0, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/as-is_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=0, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/input_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/input_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/output_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/output_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/both_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/both_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/falling_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/falling_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/rising_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/rising_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/input_2a
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[0, 1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x3}) = 0
=== RUN TestGetLineValuesV2/input_2b
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[2, 1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x2, mask=0x3}) = 0
=== RUN TestGetLineValuesV2/input_3a
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[0, 1, 2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x6, mask=0x7}) = 0
=== RUN TestGetLineValuesV2/input_3b
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[0, 2, 1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x2, mask=0x7}) = 0
=== RUN TestGetLineValuesV2/input_4a
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=4, offsets=[0, 1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xe, mask=0xf}) = 0
=== RUN TestGetLineValuesV2/input_4b
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=4, offsets=[3, 2, 1, 0], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xb, mask=0xf}) = 0
=== RUN TestGetLineValuesV2/input_8a
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[0, 1, 2, 3, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3e, mask=0xff}) = 0
=== RUN TestGetLineValuesV2/input_8b
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xbb, mask=0xff}) = 0
=== RUN TestGetLineValuesV2/atv-lo_8b
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x3b, mask=0xff}) = 0
=== RUN TestGetLineValuesV2/sparse_atv-lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x29, mask=0xad}) = 0
=== RUN TestGetLineValuesV2/sparse_atv-hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x29, mask=0xad}) = 0
=== RUN TestGetLineValuesV2/sparse_one_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x4}) = 0
=== RUN TestGetLineValuesV2/sparse_one_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x8, mask=0x8}) = 0
=== RUN TestGetLineValuesV2/overwide_sparse_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x29, mask=0xfad}) = 0
=== RUN TestGetLineValuesV2/edge_detection_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/edge_detection_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestGetLineValuesV2/zero_mask
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=4, offsets=[0, 1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="test-get-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0xd, mask=0}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x7}) = -1 EBADF (Bad file descriptor)
--- PASS: TestGetLineValuesV2 (0.69s)
--- PASS: TestGetLineValuesV2/as-is_atv-lo_lo (0.01s)
--- PASS: TestGetLineValuesV2/as-is_atv-lo_hi (0.01s)
--- PASS: TestGetLineValuesV2/as-is_lo (0.01s)
--- PASS: TestGetLineValuesV2/as-is_hi (0.01s)
--- PASS: TestGetLineValuesV2/input_lo (0.01s)
--- PASS: TestGetLineValuesV2/input_hi (0.01s)
--- PASS: TestGetLineValuesV2/output_lo (0.01s)
--- PASS: TestGetLineValuesV2/output_hi (0.01s)
--- PASS: TestGetLineValuesV2/both_lo (0.01s)
--- PASS: TestGetLineValuesV2/both_hi (0.01s)
--- PASS: TestGetLineValuesV2/falling_lo (0.01s)
--- PASS: TestGetLineValuesV2/falling_hi (0.01s)
--- PASS: TestGetLineValuesV2/rising_lo (0.01s)
--- PASS: TestGetLineValuesV2/rising_hi (0.01s)
--- PASS: TestGetLineValuesV2/input_2a (0.01s)
--- PASS: TestGetLineValuesV2/input_2b (0.01s)
--- PASS: TestGetLineValuesV2/input_3a (0.01s)
--- PASS: TestGetLineValuesV2/input_3b (0.01s)
--- PASS: TestGetLineValuesV2/input_4a (0.01s)
--- PASS: TestGetLineValuesV2/input_4b (0.01s)
--- PASS: TestGetLineValuesV2/input_8a (0.01s)
--- PASS: TestGetLineValuesV2/input_8b (0.01s)
--- PASS: TestGetLineValuesV2/atv-lo_8b (0.01s)
--- PASS: TestGetLineValuesV2/sparse_atv-lo (0.01s)
--- PASS: TestGetLineValuesV2/sparse_atv-hi (0.01s)
--- PASS: TestGetLineValuesV2/sparse_one_lo (0.01s)
--- PASS: TestGetLineValuesV2/sparse_one_hi (0.01s)
--- PASS: TestGetLineValuesV2/overwide_sparse_atv-hi (0.01s)
--- PASS: TestGetLineValuesV2/edge_detection_lo (0.01s)
--- PASS: TestGetLineValuesV2/edge_detection_hi (0.01s)
--- PASS: TestGetLineValuesV2/zero_mask (0.01s)
=== RUN TestSetLineValuesV2
=== RUN TestSetLineValuesV2/output_atv-lo_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/output_atv-lo_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/as-is_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/as-is_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/output_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/output_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
=== RUN TestSetLineValuesV2/output_2a
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[0, 1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x3}) = 0
=== RUN TestSetLineValuesV2/output_2b
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[2, 1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x2, mask=0x3}) = 0
=== RUN TestSetLineValuesV2/output_3a
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[0, 1, 2], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x6, mask=0x7}) = 0
=== RUN TestSetLineValuesV2/output_3b
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[0, 2, 1], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x2, mask=0x7}) = 0
=== RUN TestSetLineValuesV2/output_4a
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=4, offsets=[0, 1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0xe, mask=0xf}) = 0
=== RUN TestSetLineValuesV2/output_4b
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=4, offsets=[3, 2, 1, 0], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0xb, mask=0xf}) = 0
=== RUN TestSetLineValuesV2/output_8a
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[0, 1, 2, 3, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x3e, mask=0xff}) = 0
=== RUN TestSetLineValuesV2/output_8b
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0xbb, mask=0xff}) = 0
=== RUN TestSetLineValuesV2/atv-lo_8b
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1b, mask=0xff}) = 0
=== RUN TestSetLineValuesV2/sparse_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x3e, mask=0xb5}) = 0
=== RUN TestSetLineValuesV2/sparse_one_lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x2e, mask=0x10}) = 0
=== RUN TestSetLineValuesV2/sparse_one_hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x3e, mask=0x10}) = 0
=== RUN TestSetLineValuesV2/overwide_sparse_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x3e, mask=0xfb5}) = 0
=== RUN TestSetLineValuesV2/sparse_atv-lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x3e, mask=0xb5}) = 0
=== RUN TestSetLineValuesV2/input_lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0, mask=0x1}) = -1 EPERM (Operation not permitted)
=== RUN TestSetLineValuesV2/input_hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = -1 EPERM (Operation not permitted)
=== RUN TestSetLineValuesV2/edge_detection
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0, mask=0x1}) = -1 EPERM (Operation not permitted)
=== RUN TestSetLineValuesV2/zero_mask
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=8, offsets=[3, 2, 1, 0, 4, 5, 6, 7], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="test-set-line-values-V2", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0xbb, mask=0}) = -1 EINVAL (Invalid argument)
[pid 411] ioctl(0, GPIO_V2_LINE_SET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = -1 EBADF (Bad file descriptor)
--- PASS: TestSetLineValuesV2 (0.60s)
--- PASS: TestSetLineValuesV2/output_atv-lo_lo (0.01s)
--- PASS: TestSetLineValuesV2/output_atv-lo_hi (0.01s)
--- PASS: TestSetLineValuesV2/as-is_lo (0.01s)
--- PASS: TestSetLineValuesV2/as-is_hi (0.01s)
--- PASS: TestSetLineValuesV2/output_lo (0.01s)
--- PASS: TestSetLineValuesV2/output_hi (0.01s)
--- PASS: TestSetLineValuesV2/output_2a (0.02s)
--- PASS: TestSetLineValuesV2/output_2b (0.02s)
--- PASS: TestSetLineValuesV2/output_3a (0.02s)
--- PASS: TestSetLineValuesV2/output_3b (0.02s)
--- PASS: TestSetLineValuesV2/output_4a (0.02s)
--- PASS: TestSetLineValuesV2/output_4b (0.02s)
--- PASS: TestSetLineValuesV2/output_8a (0.03s)
--- PASS: TestSetLineValuesV2/output_8b (0.08s)
--- PASS: TestSetLineValuesV2/atv-lo_8b (0.03s)
--- PASS: TestSetLineValuesV2/sparse_atv-hi (0.04s)
--- PASS: TestSetLineValuesV2/sparse_one_lo (0.04s)
--- PASS: TestSetLineValuesV2/sparse_one_hi (0.04s)
--- PASS: TestSetLineValuesV2/overwide_sparse_atv-hi (0.03s)
--- PASS: TestSetLineValuesV2/sparse_atv-lo (0.03s)
--- PASS: TestSetLineValuesV2/input_lo (0.01s)
--- PASS: TestSetLineValuesV2/input_hi (0.01s)
--- PASS: TestSetLineValuesV2/edge_detection (0.01s)
--- PASS: TestSetLineValuesV2/zero_mask (0.01s)
=== RUN TestSetLineConfigV2
=== RUN TestSetLineConfigV2/in_to_out
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="in to out", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="in to out", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/out_to_in
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}, consumer="out to in", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="out to in", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/as-is_atv-hi_to_as-is_atv-lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=0, num_attrs=0}, consumer="as-is atv-hi to as-is atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="as-is atv-hi to as-is atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/as-is_atv-lo_to_as-is_atv-hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}, consumer="as-is atv-lo to as-is atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=0, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="as-is atv-lo to as-is atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_atv-lo_to_input_atv-hi
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input atv-lo to input atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input atv-lo to input atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_atv-hi_to_input_atv-lo
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input atv-hi to input atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input atv-hi to input atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/output_atv-lo_to_output_atv-hi
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x3, mask=0x7}]}, consumer="output atv-lo to output atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output atv-lo to output atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/output_atv-hi_to_output_atv-lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x3, mask=0x7}]}, consumer="output atv-hi to output atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output atv-hi to output atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_atv-lo_to_as-is_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input atv-lo to as-is atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=0, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input atv-lo to as-is atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_atv-hi_to_as-is_atv-lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input atv-hi to as-is atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input atv-hi to as-is atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_pull-up_to_input_pull-down
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}, consumer="input pull-up to input pull-dow", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input pull-up to input pull-dow", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_pull-down_to_input_pull-up
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}, consumer="input pull-down to input pull-u", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="input pull-down to input pull-u", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/output_atv-lo_to_as-is_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}, consumer="output atv-lo to as-is atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=0, num_attrs=0}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output atv-lo to as-is atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/output_atv-hi_to_as-is_atv-lo
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}, consumer="output atv-hi to as-is atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output atv-hi to as-is atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_to_biased
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge to biased", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge to biased", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING|GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/in_to_debounced
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="in to debounced", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="in to debounced", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/debounced_to_undebounced
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}, consumer="debounced to undebounced", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="debounced to undebounced", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/debounce_changed
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}, consumer="debounce changed", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="debounce changed", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/out_to_debounced_in
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}, consumer="out to debounced in", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="out to debounced in", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/debounced_in_to_out
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=1, attrs=[{debounce_period_us=0, mask=0x7}]}, consumer="debounced in to out", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x4, mask=0x7}]}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-B-1", consumer="debounced in to out", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_to_no_edge
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge to no edge", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge to no edge", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_to_none
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge to none", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge to none", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/rising_edge_to_falling_edge
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="rising edge to falling edge", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="rising edge to falling edge", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/output_to_edge
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}, consumer="output to edge", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="output to edge", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_to_output
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge to output", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=1, attrs=[{values=0x5, mask=0x7}]}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge to output", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_OUTPUT, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_to_atv-lo
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge to atv-lo", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge to atv-lo", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/edge_atv-lo_to_atv-hi
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=3, offsets=[1, 2, 3], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="edge atv-lo to atv-hi", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_IOCTL, {offset=1, name="gpio-mockup-A-1", consumer="edge atv-lo to atv-hi", flags=GPIO_V2_LINE_FLAG_USED|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = 0
=== RUN TestSetLineConfigV2/input_drain
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input drain", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2/input_source
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="input source", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2/as-is_drain
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="as-is drain", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2/as-is_source
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="as-is source", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}) = -1 EINVAL (Invalid argument)
--- PASS: TestSetLineConfigV2 (0.61s)
--- PASS: TestSetLineConfigV2/in_to_out (0.03s)
--- PASS: TestSetLineConfigV2/out_to_in (0.02s)
--- PASS: TestSetLineConfigV2/as-is_atv-hi_to_as-is_atv-lo (0.01s)
--- PASS: TestSetLineConfigV2/as-is_atv-lo_to_as-is_atv-hi (0.01s)
--- PASS: TestSetLineConfigV2/input_atv-lo_to_input_atv-hi (0.01s)
--- PASS: TestSetLineConfigV2/input_atv-hi_to_input_atv-lo (0.01s)
--- PASS: TestSetLineConfigV2/output_atv-lo_to_output_atv-hi (0.03s)
--- PASS: TestSetLineConfigV2/output_atv-hi_to_output_atv-lo (0.03s)
--- PASS: TestSetLineConfigV2/input_atv-lo_to_as-is_atv-hi (0.01s)
--- PASS: TestSetLineConfigV2/input_atv-hi_to_as-is_atv-lo (0.01s)
--- PASS: TestSetLineConfigV2/input_pull-up_to_input_pull-down (0.01s)
--- PASS: TestSetLineConfigV2/input_pull-down_to_input_pull-up (0.01s)
--- PASS: TestSetLineConfigV2/output_atv-lo_to_as-is_atv-hi (0.02s)
--- PASS: TestSetLineConfigV2/output_atv-hi_to_as-is_atv-lo (0.02s)
--- PASS: TestSetLineConfigV2/edge_to_biased (0.02s)
--- PASS: TestSetLineConfigV2/in_to_debounced (0.01s)
--- PASS: TestSetLineConfigV2/debounced_to_undebounced (0.01s)
--- PASS: TestSetLineConfigV2/debounce_changed (0.01s)
--- PASS: TestSetLineConfigV2/out_to_debounced_in (0.02s)
--- PASS: TestSetLineConfigV2/debounced_in_to_out (0.02s)
--- PASS: TestSetLineConfigV2/edge_to_no_edge (0.02s)
--- PASS: TestSetLineConfigV2/edge_to_none (0.02s)
--- PASS: TestSetLineConfigV2/rising_edge_to_falling_edge (0.02s)
--- PASS: TestSetLineConfigV2/output_to_edge (0.02s)
--- PASS: TestSetLineConfigV2/edge_to_output (0.03s)
--- PASS: TestSetLineConfigV2/edge_to_atv-lo (0.02s)
--- PASS: TestSetLineConfigV2/edge_atv-lo_to_atv-hi (0.02s)
--- PASS: TestSetLineConfigV2/input_drain (0.01s)
--- PASS: TestSetLineConfigV2/input_source (0.01s)
--- PASS: TestSetLineConfigV2/as-is_drain (0.01s)
--- PASS: TestSetLineConfigV2/as-is_source (0.01s)
=== RUN TestSetLineConfigV2Validation
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[2], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="", event_buffer_size=0, fd=3}) = 0
=== RUN TestSetLineConfigV2Validation/input_drain
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/input_source
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_drain
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OPEN_DRAIN, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_source
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OPEN_SOURCE, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_pull-up
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_BIAS_PULL_UP, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_pull-down
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_bias_disabled
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_BIAS_DISABLED, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/output_edge
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_OUTPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/as-is_edge
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}) = -1 EINVAL (Invalid argument)
=== RUN TestSetLineConfigV2Validation/non-zero_padding
[pid 411] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=0, num_attrs=0, padding=[0x1, 0, 0, 0, 0]}) = -1 EINVAL (Invalid argument)
--- PASS: TestSetLineConfigV2Validation (0.05s)
--- PASS: TestSetLineConfigV2Validation/input_drain (0.00s)
--- PASS: TestSetLineConfigV2Validation/input_source (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_drain (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_source (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_pull-up (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_pull-down (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_bias_disabled (0.00s)
--- PASS: TestSetLineConfigV2Validation/output_edge (0.00s)
--- PASS: TestSetLineConfigV2Validation/as-is_edge (0.00s)
--- PASS: TestSetLineConfigV2Validation/non-zero_padding (0.00s)
=== RUN TestWatchLineInfoV2
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="testwatch", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=5}) = -1 EINVAL (Invalid argument)
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3, padding=[0x1, 0, 0, 0]}) = -1 EINVAL (Invalid argument)
[pid 413] ioctl(0, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3, name="gpio-mockup-A-3", consumer="", flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINEINFO_WATCH_IOCTL, {offset=3}) = -1 EBUSY (Device or resource busy)
[pid 413] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[3], config={flags=GPIO_V2_LINE_FLAG_INPUT, num_attrs=0}, consumer="testwatch", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_SET_CONFIG_IOCTL, {flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW, num_attrs=0}) = 0
--- PASS: TestWatchLineInfoV2 (1.56s)
=== RUN TestReadLineEvent
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=2, offsets=[1, 2], config={flags=GPIO_V2_LINE_FLAG_ACTIVE_LOW|GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=0}, consumer="", event_buffer_size=0, fd=3}) = 0
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING, num_attrs=0}, consumer="", event_buffer_size=0, fd=3}) = 0
[pid 411] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING|GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME, num_attrs=0}, consumer="", event_buffer_size=0, fd=3}) = 0
--- PASS: TestReadLineEvent (1.00s)
=== RUN TestLineAttribute
--- PASS: TestLineAttribute (0.00s)
=== RUN TestLineFlagV2
--- PASS: TestLineFlagV2 (0.00s)
=== RUN TestDebouncePeriod
--- PASS: TestDebouncePeriod (0.00s)
=== RUN TestOutputValues
--- PASS: TestOutputValues (0.00s)
=== RUN TestNewLineBits
=== RUN TestNewLineBits/zero
=== RUN TestNewLineBits/one
=== RUN TestNewLineBits/three
=== RUN TestNewLineBits/seven
=== RUN TestNewLineBits/top
=== RUN TestNewLineBits/ends
=== RUN TestNewLineBits/overflow
--- PASS: TestNewLineBits (0.01s)
--- PASS: TestNewLineBits/zero (0.00s)
--- PASS: TestNewLineBits/one (0.00s)
--- PASS: TestNewLineBits/three (0.00s)
--- PASS: TestNewLineBits/seven (0.00s)
--- PASS: TestNewLineBits/top (0.00s)
--- PASS: TestNewLineBits/ends (0.00s)
--- PASS: TestNewLineBits/overflow (0.00s)
=== RUN TestNewLineBitmap
=== RUN TestNewLineBitmap/zero
=== RUN TestNewLineBitmap/one
=== RUN TestNewLineBitmap/three
=== RUN TestNewLineBitmap/seven
=== RUN TestNewLineBitmap/max
=== RUN TestNewLineBitmap/overflow
--- PASS: TestNewLineBitmap (0.01s)
--- PASS: TestNewLineBitmap/zero (0.00s)
--- PASS: TestNewLineBitmap/one (0.00s)
--- PASS: TestNewLineBitmap/three (0.00s)
--- PASS: TestNewLineBitmap/seven (0.00s)
--- PASS: TestNewLineBitmap/max (0.00s)
--- PASS: TestNewLineBitmap/overflow (0.00s)
=== RUN TestNewLineBitMask
=== RUN TestNewLineBitMask/zero
=== RUN TestNewLineBitMask/one
=== RUN TestNewLineBitMask/two
=== RUN TestNewLineBitMask/three
=== RUN TestNewLineBitMask/max
=== RUN TestNewLineBitMask/overflow
--- PASS: TestNewLineBitMask (0.01s)
--- PASS: TestNewLineBitMask/zero (0.00s)
--- PASS: TestNewLineBitMask/one (0.00s)
--- PASS: TestNewLineBitMask/two (0.00s)
--- PASS: TestNewLineBitMask/three (0.00s)
--- PASS: TestNewLineBitMask/max (0.00s)
--- PASS: TestNewLineBitMask/overflow (0.00s)
=== RUN TestLineBitmap
--- PASS: TestLineBitmap (0.00s)
=== RUN TestLineConfig
--- PASS: TestLineConfig (0.00s)
=== RUN TestDebounce
[pid 414] ioctl(0, GPIO_V2_GET_LINE_IOCTL, {num_lines=1, offsets=[1], config={flags=GPIO_V2_LINE_FLAG_INPUT|GPIO_V2_LINE_FLAG_EDGE_RISING|GPIO_V2_LINE_FLAG_EDGE_FALLING, num_attrs=1, attrs=[{debounce_period_us=50000, mask=0x1}]}, consumer="", event_buffer_size=0, fd=3}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 413] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
[pid 411] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0x1, mask=0x1}) = 0
[pid 414] ioctl(3, GPIO_V2_LINE_GET_VALUES_IOCTL, {bits=0, mask=0x1}) = 0
--- PASS: TestDebounce (1.88s)
=== RUN TestLineFlagsV2
--- PASS: TestLineFlagsV2 (0.00s)
PASS
strace: Process 635 attached
[pid 635] +++ exited with 0 +++
[pid 415] +++ exited with 0 +++
[pid 414] +++ exited with 0 +++
[pid 413] +++ exited with 0 +++
[pid 412] +++ exited with 0 +++
+++ exited with 0 +++
More information about the Strace-devel
mailing list