sorry, subjectprefix fail, this one is obviously for libinput.
On Wed, Jun 07, 2017 at 11:28:28AM +1000, Peter Hutterer wrote: > This makes it possible to run multiple test suite simultaneously on the same > host without messing up the other runs (provided that all instances use > the same udev/hwdb files). Previously, removing the udev rules/hwdb at the end > of a test run would cause test case failures in other runs that hadn't > completed yet. > > Signed-off-by: Peter Hutterer <[email protected]> > --- > test/litest.c | 25 ++++++++++++++++--------- > 1 file changed, 16 insertions(+), 9 deletions(-) > > diff --git a/test/litest.c b/test/litest.c > index ef474455..8991ed54 100644 > --- a/test/litest.c > +++ b/test/litest.c > @@ -55,13 +55,13 @@ > #define UDEV_RULE_PREFIX "99-litest-" > #define UDEV_HWDB_D "/etc/udev/hwdb.d" > #define UDEV_MODEL_QUIRKS_RULE_FILE UDEV_RULES_D \ > - "/91-litest-model-quirks-REMOVEME.rules" > + "/91-litest-model-quirks-REMOVEME-XXXXXX.rules" > #define UDEV_MODEL_QUIRKS_HWDB_FILE UDEV_HWDB_D \ > - "/91-litest-model-quirks-REMOVEME.hwdb" > + "/91-litest-model-quirks-REMOVEME-XXXXXX.hwdb" > #define UDEV_TEST_DEVICE_RULE_FILE UDEV_RULES_D \ > - "/91-litest-test-device-REMOVEME.rules" > + "/91-litest-test-device-REMOVEME-XXXXXXX.rules" > #define UDEV_DEVICE_GROUPS_FILE UDEV_RULES_D \ > - "/80-libinput-device-groups-litest.rules" > + "/80-libinput-device-groups-litest-XXXXXX.rules" > > static int jobs = 8; > static int in_debugger = -1; > @@ -1125,17 +1125,20 @@ litest_copy_file(const char *dest, const char *src, > const char *header) > { > int in, out, length; > struct created_file *file; > + long int suffixlen; > > file = zalloc(sizeof(*file)); > litest_assert(file); > file->path = strdup(dest); > litest_assert(file->path); > > - out = open(dest, O_CREAT|O_WRONLY, 0644); > + suffixlen = file->path + strlen(file->path) - rindex(file->path, '.'); > + out = mkstemps(file->path, suffixlen); > if (out == -1) > litest_abort_msg("Failed to write to file %s (%s)\n", > - dest, > + file->path, > strerror(errno)); > + litest_assert_int_ne(chmod(file->path, 0644), -1); > > if (header) { > length = strlen(header); > @@ -1228,6 +1231,7 @@ static char * > litest_init_device_udev_rules(struct litest_test_device *dev) > { > int rc; > + int fd; > FILE *f; > char *path = NULL; > > @@ -1235,7 +1239,7 @@ litest_init_device_udev_rules(struct litest_test_device > *dev) > return NULL; > > rc = xasprintf(&path, > - "%s/%s%s.rules", > + "%s/%s%s-XXXXXX.rules", > UDEV_RULES_D, > UDEV_RULE_PREFIX, > dev->shortname); > @@ -1243,8 +1247,11 @@ litest_init_device_udev_rules(struct > litest_test_device *dev) > (int)( > strlen(UDEV_RULES_D) + > strlen(UDEV_RULE_PREFIX) + > - strlen(dev->shortname) + 7)); > - f = fopen(path, "w"); > + strlen(dev->shortname) + 14)); > + > + fd = mkstemps(path, 6); > + litest_assert_int_ne(fd, -1); > + f = fdopen(fd, "w"); > litest_assert_notnull(f); > litest_assert_int_ge(fputs(dev->udev_rule, f), 0); > fclose(f); > -- > 2.13.0 > _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
