[PATCH v4 0/6] binder: Set up KUnit tests for alloc

Tiffany Yang posted 6 patches 2 months, 3 weeks ago
drivers/android/Kconfig                    |  15 +-
drivers/android/Makefile                   |   2 +-
drivers/android/binder.c                   |  10 +-
drivers/android/binder_alloc.c             |  39 +-
drivers/android/binder_alloc.h             |  14 +-
drivers/android/binder_alloc_selftest.c    | 306 -----------
drivers/android/binder_internal.h          |   4 +
drivers/android/tests/.kunitconfig         |   7 +
drivers/android/tests/Makefile             |   6 +
drivers/android/tests/binder_alloc_kunit.c | 572 +++++++++++++++++++++
include/kunit/test.h                       |  12 +
lib/kunit/user_alloc.c                     |   4 +-
12 files changed, 651 insertions(+), 340 deletions(-)
delete mode 100644 drivers/android/binder_alloc_selftest.c
create mode 100644 drivers/android/tests/.kunitconfig
create mode 100644 drivers/android/tests/Makefile
create mode 100644 drivers/android/tests/binder_alloc_kunit.c
[PATCH v4 0/6] binder: Set up KUnit tests for alloc
Posted by Tiffany Yang 2 months, 3 weeks ago
Hello,

binder_alloc_selftest provides a robust set of checks for the binder
allocator, but it rarely runs because it must hook into a running binder
process and block all other binder threads until it completes. The test
itself is a good candidate for conversion to KUnit, and it can be
further isolated from user processes by using a test-specific lru
freelist instead of the global one. This series converts the selftest
to KUnit to make it less burdensome to run and to set up a foundation
for unit testing future binder_alloc changes.

Thanks,
Tiffany

Tiffany Yang (6):
  binder: Fix selftest page indexing
  binder: Store lru freelist in binder_alloc
  kunit: test: Export kunit_attach_mm()
  binder: Scaffolding for binder_alloc KUnit tests
  binder: Convert binder_alloc selftests to KUnit
  binder: encapsulate individual alloc test cases

 drivers/android/Kconfig                    |  15 +-
 drivers/android/Makefile                   |   2 +-
 drivers/android/binder.c                   |  10 +-
 drivers/android/binder_alloc.c             |  39 +-
 drivers/android/binder_alloc.h             |  14 +-
 drivers/android/binder_alloc_selftest.c    | 306 -----------
 drivers/android/binder_internal.h          |   4 +
 drivers/android/tests/.kunitconfig         |   7 +
 drivers/android/tests/Makefile             |   6 +
 drivers/android/tests/binder_alloc_kunit.c | 572 +++++++++++++++++++++
 include/kunit/test.h                       |  12 +
 lib/kunit/user_alloc.c                     |   4 +-
 12 files changed, 651 insertions(+), 340 deletions(-)
 delete mode 100644 drivers/android/binder_alloc_selftest.c
 create mode 100644 drivers/android/tests/.kunitconfig
 create mode 100644 drivers/android/tests/Makefile
 create mode 100644 drivers/android/tests/binder_alloc_kunit.c

-- 
2.50.0.727.gbf7dc18ff4-goog
Re: [PATCH v4 0/6] binder: Set up KUnit tests for alloc
Posted by Greg Kroah-Hartman 2 months, 3 weeks ago
On Wed, Jul 16, 2025 at 06:10:03PM -0700, Tiffany Yang wrote:
> Hello,
> 
> binder_alloc_selftest provides a robust set of checks for the binder
> allocator, but it rarely runs because it must hook into a running binder
> process and block all other binder threads until it completes. The test
> itself is a good candidate for conversion to KUnit, and it can be
> further isolated from user processes by using a test-specific lru
> freelist instead of the global one. This series converts the selftest
> to KUnit to make it less burdensome to run and to set up a foundation
> for unit testing future binder_alloc changes.

As these were already in my trees, can you just send a follow-on fixup
for the difference between this and the previous version?

thanks,

greg k-h
Re: [PATCH v4 0/6] binder: Set up KUnit tests for alloc
Posted by Joel Fernandes 2 months, 2 weeks ago

On 7/16/2025 9:10 PM, Tiffany Yang wrote:
> Hello,
> 
> binder_alloc_selftest provides a robust set of checks for the binder
> allocator, but it rarely runs because it must hook into a running binder
> process and block all other binder threads until it completes. The test
> itself is a good candidate for conversion to KUnit, and it can be
> further isolated from user processes by using a test-specific lru
> freelist instead of the global one. This series converts the selftest
> to KUnit to make it less burdensome to run and to set up a foundation
> for unit testing future binder_alloc changes.
> 
> Thanks,
> Tiffany
> 
> Tiffany Yang (6):
>   binder: Fix selftest page indexing
>   binder: Store lru freelist in binder_alloc
>   kunit: test: Export kunit_attach_mm()
>   binder: Scaffolding for binder_alloc KUnit tests
>   binder: Convert binder_alloc selftests to KUnit
>   binder: encapsulate individual alloc test cases


Looks good to me!  And I learnt a bunch of kunit from reading this too. :)

Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>

 - Joel