~ubuntu-branches/ubuntu/intrepid/asn1c/intrepid

« back to all changes in this revision

Viewing changes to skeletons/tests/check-UTCTime.c

  • Committer: Bazaar Package Importer
  • Author(s): W. Borgert
  • Date: 2005-05-28 12:36:42 UTC
  • Revision ID: james.westby@ubuntu.com-20050528123642-3h6kstws5u0xcovl
Tags: upstream-0.9.14
ImportĀ upstreamĀ versionĀ 0.9.14

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#define __NO_ASN_TABLE__
 
2
#include <GeneralizedTime.c>
 
3
#define __NO_ASN_TABLE__
 
4
#include <UTCTime.c>
 
5
#include <constraints.c>
 
6
 
 
7
static void
 
8
check(char *time_str, time_t sample, int as_gmt) {
 
9
        UTCTime_t gt;
 
10
        struct tm tm;
 
11
        time_t tloc;
 
12
 
 
13
        gt.buf = time_str;
 
14
        gt.size = strlen(time_str);
 
15
 
 
16
        tloc = asn_UT2time(&gt, &tm, as_gmt);
 
17
        printf("[%s] -> %ld == %ld\n", time_str, (long)tloc, (long)sample);
 
18
        if(tloc != -1)
 
19
        printf("\t%d-%d-%dT%02d:%02d:%02d %ld\n",
 
20
                tm.tm_year + 1900,
 
21
                tm.tm_mon + 1,
 
22
                tm.tm_mday,
 
23
                tm.tm_hour,
 
24
                tm.tm_min,
 
25
                tm.tm_sec,
 
26
                GMTOFF(tm)
 
27
        );
 
28
        assert(tloc == sample);
 
29
 
 
30
        assert(tloc == -1 || as_gmt == 0 || GMTOFF(tm) == 0);
 
31
 
 
32
        if(as_gmt) check(time_str, sample, as_gmt);
 
33
}
 
34
 
 
35
int
 
36
main(int ac, char **av) {
 
37
 
 
38
        (void)av;
 
39
 
 
40
        check("0401250", -1, 0);
 
41
        check("0401250930", -1, 0);     /* "Z" or "(+|-)hhmm" required */
 
42
        check("04012509300", -1, 0);
 
43
        check("040125093000-", -1, 0);
 
44
        check("040125093007-0", -1, 0);
 
45
        check("040125093007-080", -1, 0);
 
46
        check("0401250930.01Z", -1, 0);
 
47
 
 
48
        check("040125093007Z", 1075023007, 0);
 
49
        check("040125093007+00", 1075023007, 0);
 
50
        check("040125093007-0800", 1075051807, 0);
 
51
 
 
52
        if(ac > 1) {
 
53
                /* These will be valid only inside PST time zone */
 
54
                check("040125093007", 1075051807, 0);
 
55
                check("040125093000,01", 1075051800, 0);
 
56
                check("040125093000,1234", 1075051800, 0);
 
57
        }
 
58
 
 
59
        return 0;
 
60
}
 
61
 
 
62
 
 
63
/*
 
64
 * Dummy function.
 
65
 */
 
66
 
 
67
asn_enc_rval_t
 
68
OCTET_STRING_encode_der(asn_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
 
69
        asn_enc_rval_t erval;
 
70
 
 
71
        (void)td;
 
72
        (void)ptr;
 
73
        (void)tag_mode;
 
74
        (void)tag;
 
75
        (void)cb;
 
76
        (void)app_key;
 
77
 
 
78
        return erval;
 
79
}
 
80
 
 
81
asn_enc_rval_t
 
82
OCTET_STRING_encode_xer_utf8(asn_TYPE_descriptor_t *td, void *ptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key) {
 
83
        asn_enc_rval_t erval;
 
84
 
 
85
        (void)td;
 
86
        (void)ptr;
 
87
        (void)ilevel;
 
88
        (void)flags;
 
89
        (void)cb;
 
90
        (void)app_key;
 
91
 
 
92
        return erval;
 
93
}