18b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten/*
28b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * Copyright (C) 2011 The Android Open Source Project
38b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten *
48b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License");
58b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * you may not use this file except in compliance with the License.
68b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * You may obtain a copy of the License at
78b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten *
88b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten *      http://www.apache.org/licenses/LICENSE-2.0
98b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten *
108b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * Unless required by applicable law or agreed to in writing, software
118b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS,
128b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * See the License for the specific language governing permissions and
148b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten * limitations under the License.
158b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten */
168b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
178b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten// Minimal test program for strptime
188b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
198b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten#include <stdio.h>
208b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten#include <stdlib.h>
218b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten#include <string.h>
228b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten#include <time.h>
238b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
248b37200df5764303e2c7c2396a34a07f2a604591Glenn Kastenint main(int argc, char **argv)
258b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten{
268b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    struct tm tm;
278b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    char buf[255];
288b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
298b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    // For now, only test a couple of formats that use recursion
308b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
318b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    memset(&tm, 0, sizeof(tm));
328b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    strptime("11:14", "%R", &tm);
338b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    strftime(buf, sizeof(buf), "%H:%M", &tm);
348b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    puts(buf);
358b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    puts(!strcmp(buf, "11:14") ? "OK" : "FAILED");
368b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
378b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    memset(&tm, 0, sizeof(tm));
388b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    strptime("09:41:53", "%T", &tm);
398b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    strftime(buf, sizeof(buf), "%H:%M:%S", &tm);
408b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    puts(buf);
418b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    puts(!strcmp(buf, "09:41:53") ? "OK" : "FAILED");
428b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten
438b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten    return EXIT_SUCCESS;
448b37200df5764303e2c7c2396a34a07f2a604591Glenn Kasten}
45