From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754637AbcHARVU (ORCPT ); Mon, 1 Aug 2016 13:21:20 -0400 Received: from ec2-52-27-115-49.us-west-2.compute.amazonaws.com ([52.27.115.49]:37906 "EHLO s-opensource.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754238AbcHARVG (ORCPT ); Mon, 1 Aug 2016 13:21:06 -0400 To: torvalds@linux-foundation.org Cc: LKML , linux-kselftest@vger.kernel.org, Shuah Khan From: Shuah Khan Subject: [GIT PULL] Kselftest fixes update for 4.8-rc1 Message-ID: <579F7F3F.9060607@osg.samsung.com> Date: Mon, 1 Aug 2016 10:56:31 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050100020402010307050003" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------050100020402010307050003 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hi Linus, Please pull this 1/2 of Kselftest update for 4.8-rc1. This update contains fixes. diff is attached. thanks, -- Shuah --------------------------------------------------------------------------------- The following changes since commit 1a695a905c18548062509178b98bc91e67510864: Linux 4.7-rc1 (2016-05-29 09:29:24 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest tags/linux-kselftest-4.8-rc1-fixes for you to fetch changes up to f80eb4289491f6ddb0788636ce0bd6f5d3a2012a: selftests/exec: Makefile is a run-time dependency, add it to the install list (2016-06-15 13:35:55 -0600) ---------------------------------------------------------------- linux-kselftest-4.8-rc1-fixes This fixes update for Kselftest adds: - Adds a new timer set-tz test case - Fixes a bug in exec test Makefile dependency list - ---------------------------------------------------------------- John Stultz (1): kselftests: timers: Add set-tz test case Yannick Brosseau (1): selftests/exec: Makefile is a run-time dependency, add it to the install list tools/testing/selftests/exec/Makefile | 3 +- tools/testing/selftests/timers/Makefile | 3 +- tools/testing/selftests/timers/set-tz.c | 119 ++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 tools/testing/selftests/timers/set-tz.c --------------------------------------------------------------------------------- -- Shuah Khan Sr. Linux Kernel Developer Open Source Innovation Group Samsung Research America (Silicon Valley) shuahkh@osg.samsung.com --------------050100020402010307050003 Content-Type: text/x-patch; name="4.8-rc1_fixes.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="4.8-rc1_fixes.diff" diff --git a/tools/testing/selftests/exec/Makefile b/tools/testing/selfte= sts/exec/Makefile index 4e400eb..d430060 100644 --- a/tools/testing/selftests/exec/Makefile +++ b/tools/testing/selftests/exec/Makefile @@ -18,7 +18,8 @@ execveat.denatured: execveat $(CC) $(CFLAGS) -o $@ $^ =20 TEST_PROGS :=3D execveat -TEST_FILES :=3D $(DEPS) +# Makefile is a run-time dependency, since it's accessed by the execveat= test +TEST_FILES :=3D $(DEPS) Makefile =20 include ../lib.mk =20 diff --git a/tools/testing/selftests/timers/Makefile b/tools/testing/self= tests/timers/Makefile index 4a1be1b..1d55568 100644 --- a/tools/testing/selftests/timers/Makefile +++ b/tools/testing/selftests/timers/Makefile @@ -10,7 +10,7 @@ TEST_PROGS =3D posix_timers nanosleep nsleep-lat set-ti= mer-lat mqueue-lat \ =20 TEST_PROGS_EXTENDED =3D alarmtimer-suspend valid-adjtimex adjtick change= _skew \ skew_consistency clocksource-switch leap-a-day \ - leapcrash set-tai set-2038 + leapcrash set-tai set-2038 set-tz =20 bins =3D $(TEST_PROGS) $(TEST_PROGS_EXTENDED) =20 @@ -30,6 +30,7 @@ run_destructive_tests: run_tests ./clocksource-switch ./leap-a-day -s -i 10 ./leapcrash + ./set-tz ./set-tai ./set-2038 =20 diff --git a/tools/testing/selftests/timers/set-tz.c b/tools/testing/self= tests/timers/set-tz.c new file mode 100644 index 0000000..f418492 --- /dev/null +++ b/tools/testing/selftests/timers/set-tz.c @@ -0,0 +1,119 @@ +/* Set tz value + * by: John Stultz + * (C) Copyright Linaro 2016 + * Licensed under the GPLv2 + * + * This program is free software: you can redistribute it and/or modif= y + * it under the terms of the GNU General Public License as published b= y + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef KTEST +#include "../kselftest.h" +#else +static inline int ksft_exit_pass(void) +{ + exit(0); +} +static inline int ksft_exit_fail(void) +{ + exit(1); +} +#endif + +int set_tz(int min, int dst) +{ + struct timezone tz; + + tz.tz_minuteswest =3D min; + tz.tz_dsttime =3D dst; + + return settimeofday(0, &tz); +} + +int get_tz_min(void) +{ + struct timezone tz; + struct timeval tv; + + memset(&tz, 0, sizeof(tz)); + gettimeofday(&tv, &tz); + return tz.tz_minuteswest; +} + +int get_tz_dst(void) +{ + struct timezone tz; + struct timeval tv; + + memset(&tz, 0, sizeof(tz)); + gettimeofday(&tv, &tz); + return tz.tz_dsttime; +} + +int main(int argc, char **argv) +{ + int i, ret; + int min, dst; + + min =3D get_tz_min(); + dst =3D get_tz_dst(); + printf("tz_minuteswest started at %i, dst at %i\n", min, dst); + + printf("Checking tz_minuteswest can be properly set: "); + for (i =3D -15*60; i < 15*60; i +=3D 30) { + ret =3D set_tz(i, dst); + ret =3D get_tz_min(); + if (ret !=3D i) { + printf("[FAILED] expected: %i got %i\n", i, ret); + goto err; + } + } + printf("[OK]\n"); + + printf("Checking invalid tz_minuteswest values are caught: "); + + if (!set_tz(-15*60-1, dst)) { + printf("[FAILED] %i didn't return failure!\n", -15*60-1); + goto err; + } + + if (!set_tz(15*60+1, dst)) { + printf("[FAILED] %i didn't return failure!\n", 15*60+1); + goto err; + } + + if (!set_tz(-24*60, dst)) { + printf("[FAILED] %i didn't return failure!\n", -24*60); + goto err; + } + + if (!set_tz(24*60, dst)) { + printf("[FAILED] %i didn't return failure!\n", 24*60); + goto err; + } + + printf("[OK]\n"); + + set_tz(min, dst); + return ksft_exit_pass(); + +err: + set_tz(min, dst); + return ksft_exit_fail(); +} --------------050100020402010307050003--