[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