Fix corner cases of getgroups and setgroups syscall decoders

* uid.c (print_groups): New function.
(SYS_FUNC(setgroups), SYS_FUNC(getgroups)): Use it.
Print first syscall argument using %u format.
* tests/getgroups.c: New file.
* tests/getgroups.test: New test.
* tests/getgroups32.c: New file.
* tests/getgroups32.test: New test.
* tests/setgroups.c: New file.
* tests/setgroups.test: New test.
* tests/setgroups32.c: New file.
* tests/setgroups32.test: New test.
* tests/.gitignore: Add getgroups, getgroups32, setgroups,
and setgroups32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getgroups.test, getgroups32.test,
setgroups.test, and setgroups32.test.
diff --git a/tests/.gitignore b/tests/.gitignore
index d6621e0..af1de08 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -59,6 +59,8 @@
 getcwd
 getdents
 getdents64
+getgroups
+getgroups32
 getrandom
 getrusage
 getxxid
@@ -148,6 +150,8 @@
 setfsuid32
 setgid
 setgid32
+setgroups
+setgroups32
 sethostname
 setregid
 setregid32