/* Time bounds setting test * by: john stultz (johnstul@us.ibm.com) * (C) Copyright IBM 2012 * Licensed under the GPLv2 * * NOTE: This is a meta-test which sets the time to edge cases then * uses other tests to detect problems. Thus this test requires that * the inconsistency-check and nanosleep tests be present in the same * directory it is run from. * * To build: * $ gcc set-2038.c -o set-2038 -lrt * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * 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.
*/
/* First test that crazy values don't work */ if (!settime(YEAR_1901)) {
ret = -1; goto out;
} if (!settime(YEAR_MAX)) {
ret = -1; goto out;
} if (!is32bits() && !settime(YEAR_2262)) {
ret = -1; goto out;
}
/* Now test behavior near edges */
settime(YEAR_1970);
ret = do_tests(); if (ret) goto out;
settime(YEAR_2038 - 600);
ret = do_tests(); if (ret) goto out;
/* The rest of the tests can blowup on 32bit systems */ if (is32bits() && !dangerous) goto out; /* Test rollover behavior 32bit edge */
settime(YEAR_2038 - 10);
ret = do_tests(); if (ret) goto out;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.