aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-02-17 15:59:34 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-06-15 10:42:11 -0300
commit088d3291ef3dac918b002f84eace4c5a7b757f4f (patch)
treef9983979703ae380ae0450112db6b1d65c5d4051
parent372d2ef1f9ef67a679ae5143ab3bac8997b80160 (diff)
downloadglibc-088d3291ef3dac918b002f84eace4c5a7b757f4f.tar.xz
glibc-088d3291ef3dac918b002f84eace4c5a7b757f4f.zip
y2038: Add test coverage
It is enabled through a new rule, tests-y2038, which is built only when the ABI supports the comapt 64-bit time_t (defined by the header time64-compat.h, which also enables the creation of the symbol Version for Linux). It means the tests are not built for ABI which already provide default 64-bit time_t. The new rule already adds the required LFS and 64-bit time_t compiler flags. The current coverage is: * libc: - adjtime tst-adjtime-time64 - adjtimex tst-adjtimex-time64 - clock_adjtime tst-clock_adjtime-time64 - clock_getres tst-clock-time64, tst-cpuclock1-time64 - clock_gettime tst-clock-time64, tst-clock2-time64, tst-cpuclock1-time64 - clock_nanosleep tst-clock_nanosleep-time64, tst-cpuclock1-time64 - clock_settime tst-clock2-time64 - cnd_timedwait tst-cnd-timedwait-time64 - ctime tst-ctime-time64 - ctime_r tst-ctime-time64 - difftime tst-difftime-time64 - fstat tst-stat-time64 - fstatat tst-stat-time64 - futimens tst-futimens-time64 - futimes tst-futimes-time64 - futimesat tst-futimesat-time64 - fts_* tst-fts-time64 - getitimer tst-itimer-timer64 - getrusage - gettimeofday tst-clock_nanosleep-time64 - glob / globfree tst-gnuglob64-time64 - gmtime tst-gmtime-time64 - gmtime_r tst-gmtime-time64 - lstat tst-stat-time64 - localtime tst-y2039-time64 - localtime_t tst-y2039-time64 - lutimes tst-lutimes-time64 - mktime tst-mktime4-time64 - mq_timedreceive tst-mqueue{1248}-time64 - mq_timedsend tst-mqueue{1248}-time64 - msgctl test-sysvmsg-time64 - mtx_timedlock tst-mtx-timedlock-time64 - nanosleep tst-cpuclock{12}-time64, tst-mqueue8-time64, tst-clock-time64 - nftw / ftw ftwtest-time64 - ntp_adjtime tst-ntp_adjtime-time64 - ntp_gettime tst-ntp_gettime-time64 - ntp_gettimex tst-ntp_gettimex-time64 - ppoll tst-ppoll-time64 - pselect tst-pselect-time64 - pthread_clockjoin_np tst-join14-time64 - pthread_cond_clockwait tst-cond11-time64 - pthread_cond_timedwait tst-abstime-time64 - pthread_mutex_clocklock tst-abstime-time64 - pthread_mutex_timedlock tst-abstime-time64 - pthread_rwlock_clockrdlock tst-abstime-time64, tst-rwlock14-time64 - pthread_rwlock_clockwrlock tst-abstime-time64, tst-rwlock14-time64 - pthread_rwlock_timedrdlock tst-abstime-time64, tst-rwlock14-time64 - pthread_rwlock_timedwrlock tst-abstime-time64, tst-rwlock14-time64 - pthread_timedjoin_np tst-join14-time64 - recvmmsg tst-cancel4_2-time64 - sched_rr_get_interval tst-sched_rr_get_interval-time64 - select tst-select-time64 - sem_clockwait tst-sem5-time64 - sem_timedwait tst-sem5-time64 - semctl test-sysvsem-time64 - semtimedop test-sysvsem-time64 - setitimer tst-mqueue2-time64, tst-itimer-timer64 - settimeofday tst-settimeofday-time64 - shmctl test-sysvshm-time64 - sigtimedwait tst-sigtimedwait-time64 - stat tst-stat-time64 - thrd_sleep tst-thrd-sleep-time64 - time tst-mqueue{1248}-time64 - timegm tst-timegm-time64 - timer_gettime tst-timer4-time64 - timer_settime tst-timer4-time64 - timerfd_gettime tst-timerfd-time64 - timerfd_settime tst-timerfd-time64 - timespec_get tst-timespec_get-time64 - timespec_getres tst-timespec_getres-time64 - utime tst-utime-time64 - utimensat tst-utimensat-time64 - utimes tst-utimes-time64 - wait3 tst-wait3-time64 - wait4 tst-wait4-time64 * librt: - aio_suspend tst-aio6-time64 - mq_timedreceive tst-mqueue{1248}-time64 - mq_timedsend tst-mqueue{1248}-time64 - timer_gettime tst-timer4-time64 - timer_settime tst-timer4-time64 * libanl: - gai_suspend Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
-rw-r--r--Makeconfig14
-rw-r--r--Makerules18
-rw-r--r--io/Makefile22
-rw-r--r--io/ftwtest-time64.c1
-rw-r--r--io/tst-fts-time64.c1
-rw-r--r--io/tst-futimens-time64.c2
-rw-r--r--io/tst-futimens.c6
-rw-r--r--io/tst-futimes-time64.c2
-rw-r--r--io/tst-futimes.c6
-rw-r--r--io/tst-futimesat-time64.c4
-rw-r--r--io/tst-futimesat.c47
-rw-r--r--io/tst-lutimes-time64.c2
-rw-r--r--io/tst-lutimes.c10
-rw-r--r--io/tst-stat-time64.c102
-rw-r--r--io/tst-utime-time64.c2
-rw-r--r--io/tst-utime.c6
-rw-r--r--io/tst-utimensat-time64.c2
-rw-r--r--io/tst-utimensat.c12
-rw-r--r--io/tst-utimes-time64.c2
-rw-r--r--io/tst-utimes.c6
-rw-r--r--misc/Makefile4
-rw-r--r--misc/tst-pselect-time64.c1
-rw-r--r--misc/tst-select-time64.c1
-rw-r--r--nptl/Makefile3
-rw-r--r--nptl/tst-cancel4_2-time64.c1
-rw-r--r--posix/Makefile2
-rw-r--r--posix/tst-gnuglob64-time64.c7
-rw-r--r--posix/tst-sched_rr_get_interval-time64.c1
-rw-r--r--posix/tst-wait3-time64.c1
-rw-r--r--posix/tst-wait4-time64.c1
-rw-r--r--rt/Makefile9
-rw-r--r--rt/tst-aio6-time64.c1
-rw-r--r--rt/tst-cpuclock2-time64.c1
-rw-r--r--rt/tst-cpuclock2.c9
-rw-r--r--rt/tst-mqueue1-time64.c1
-rw-r--r--rt/tst-mqueue2-time64.c1
-rw-r--r--rt/tst-mqueue4-time64.c1
-rw-r--r--rt/tst-mqueue8-time64.c1
-rw-r--r--rt/tst-timer4-time64.c1
-rw-r--r--sysdeps/pthread/Makefile10
-rw-r--r--sysdeps/pthread/tst-abstime-time64.c1
-rw-r--r--sysdeps/pthread/tst-cnd-timedwait-time64.c1
-rw-r--r--sysdeps/pthread/tst-cond11-time64.c1
-rw-r--r--sysdeps/pthread/tst-join14-time64.c1
-rw-r--r--sysdeps/pthread/tst-mtx-timedlock-time64.c1
-rw-r--r--sysdeps/pthread/tst-rwlock14-time64.c1
-rw-r--r--sysdeps/pthread/tst-sem5-time64.c1
-rw-r--r--sysdeps/pthread/tst-thrd-sleep-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/Makefile10
-rw-r--r--sysdeps/unix/sysv/linux/tst-adjtimex-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-clock_adjtime-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_adjtime-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettime-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettimex-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-ppoll-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigtimedwait-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-timerfd-time64.c1
-rw-r--r--sysvipc/Makefile2
-rw-r--r--sysvipc/test-sysvmsg-time64.c1
-rw-r--r--sysvipc/test-sysvsem-time64.c1
-rw-r--r--sysvipc/test-sysvshm-time64.c1
-rw-r--r--time/Makefile18
-rw-r--r--time/tst-adjtime-time64.c1
-rw-r--r--time/tst-clock-time64.c1
-rw-r--r--time/tst-clock2-time64.c1
-rw-r--r--time/tst-clock_nanosleep-time64.c1
-rw-r--r--time/tst-clock_settime-time64.c1
-rw-r--r--time/tst-cpuclock1-time64.c1
-rw-r--r--time/tst-ctime-time64.c1
-rw-r--r--time/tst-ctime.c16
-rw-r--r--time/tst-difftime-time64.c1
-rw-r--r--time/tst-gmtime-time64.c1
-rw-r--r--time/tst-itimer-time64.c1
-rw-r--r--time/tst-mktime4-time64.c1
-rw-r--r--time/tst-settimeofday-time64.c1
-rw-r--r--time/tst-timegm-time64.c1
-rw-r--r--time/tst-timespec_get-time64.c1
-rw-r--r--time/tst-timespec_getres-time64.c1
-rw-r--r--time/tst-y2039-time64.c1
-rw-r--r--time/tst-y2039.c10
80 files changed, 385 insertions, 30 deletions
diff --git a/Makeconfig b/Makeconfig
index c3496452b6..b6357d0b19 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1235,6 +1235,20 @@ $(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
touch $@
endif # avoid-generated
endif # $(build-shared) = yes
+
+-include $(common-objpfx)time64-compat.mk
+postclean-generated += time64-compat.mk
+
+$(common-objpfx)time64-compat.mk: $(sysd-versions-force) \
+ $(common-objpfx)time64-compat.i
+ sed '/^[ ]*#/d;/^[ ]*$$/d' $< > $@T
+ mv -f $@T $@
+$(common-objpfx)time64-compat.i: $(..)Makeconfig
+ printf "#include <time64-compat.h>\n#ifdef TIME64_NON_DEFAULT\nhave-time64-compat = yes\n#endif" \
+ | $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - > $@T
+ mv -f $@T $@
+
+
endif # sysd-sorted-done
# The name under which the run-time dynamic linker is installed.