1#! /usr/bin/perl -w
2
3use strict;
4
5use ExtUtils::testlib;
6
7use GSSAPI qw(:all);
8
9my @constants_to_be_checked
10    = qw( GSS_C_ACCEPT
11          GSS_C_AF_APPLETALK
12          GSS_C_AF_BSC
13          GSS_C_AF_CCITT
14          GSS_C_AF_CHAOS
15          GSS_C_AF_DATAKIT
16          GSS_C_AF_DECnet
17          GSS_C_AF_DLI
18          GSS_C_AF_DSS
19          GSS_C_AF_ECMA
20          GSS_C_AF_HYLINK
21          GSS_C_AF_IMPLINK
22          GSS_C_AF_INET
23          GSS_C_AF_LAT
24          GSS_C_AF_LOCAL
25          GSS_C_AF_NBS
26          GSS_C_AF_NS
27          GSS_C_AF_NULLADDR
28          GSS_C_AF_OSI
29          GSS_C_AF_PUP
30          GSS_C_AF_SNA
31          GSS_C_AF_UNSPEC
32          GSS_C_AF_X25
33          GSS_C_ANON_FLAG
34          GSS_C_BOTH
35          GSS_C_CALLING_ERROR_MASK
36          GSS_C_CALLING_ERROR_OFFSET
37          GSS_C_CONF_FLAG
38          GSS_C_DELEG_FLAG
39          GSS_C_GSS_CODE
40          GSS_C_INDEFINITE
41          GSS_C_INITIATE
42          GSS_C_INTEG_FLAG
43          GSS_C_MECH_CODE
44          GSS_C_MUTUAL_FLAG
45          GSS_C_PROT_READY_FLAG
46          GSS_C_QOP_DEFAULT
47          GSS_C_REPLAY_FLAG
48          GSS_C_ROUTINE_ERROR_MASK
49          GSS_C_ROUTINE_ERROR_OFFSET
50          GSS_C_SEQUENCE_FLAG
51          GSS_C_SUPPLEMENTARY_MASK
52          GSS_C_SUPPLEMENTARY_OFFSET
53          GSS_C_TRANS_FLAG
54          GSS_S_BAD_BINDINGS
55          GSS_S_BAD_MECH
56          GSS_S_BAD_NAME
57          GSS_S_BAD_NAMETYPE
58          GSS_S_BAD_QOP
59          GSS_S_BAD_SIG
60          GSS_S_BAD_STATUS
61          GSS_S_CALL_BAD_STRUCTURE
62          GSS_S_CALL_INACCESSIBLE_READ
63          GSS_S_CALL_INACCESSIBLE_WRITE
64          GSS_S_COMPLETE
65          GSS_S_CONTEXT_EXPIRED
66          GSS_S_CONTINUE_NEEDED
67          GSS_S_CREDENTIALS_EXPIRED
68          GSS_S_DEFECTIVE_CREDENTIAL
69          GSS_S_DEFECTIVE_TOKEN
70          GSS_S_DUPLICATE_ELEMENT
71          GSS_S_DUPLICATE_TOKEN
72          GSS_S_FAILURE
73          GSS_S_GAP_TOKEN
74          GSS_S_NAME_NOT_MN
75          GSS_S_NO_CONTEXT
76          GSS_S_NO_CRED
77          GSS_S_OLD_TOKEN
78          GSS_S_UNAUTHORIZED
79          GSS_S_UNAVAILABLE
80          GSS_S_UNSEQ_TOKEN
81         );
82
83use Test::More tests => 72;
84
85
86do_constanttest( $_ ) foreach (@constants_to_be_checked);
87
88
89SKIP: {
90  if( GSSAPI::gssapi_implementation_is_heimdal() ) {
91     skip('GSS_S_CRED_UNAVAIL not defined on Heimdal', 1);
92  }
93  do_constanttest( 'GSS_S_CRED_UNAVAIL' );
94}
95
96
97sub do_constanttest {
98   my ( $constname ) = @_;
99   my $constvalue;
100   eval " \$constvalue = $constname";
101   ok( ! $@,  "$constname" );
102}