59 TESTD=x.test
60 P3JAR=${EXTD}${FS}p3.jar
61
62 if [ \! -d $EXTD ]; then
63 # Initialize
64 echo Initializing...
65 rm -rf $JARD $EXTD $TESTD
66 mkdir -p $JARD $EXTD $TESTD
67
68 for n in 2 3; do
69 rm -rf $JARD/*; mkdir -p $JARD/META-INF/services
70 echo FooProvider$n \
71 >$JARD/META-INF/services/FooService
72 cp $TESTCLASSES/FooProvider$n.class $JARD
73 if [ $n = 3 ]; then
74 cp $TESTCLASSES/FooService.class $JARD
75 fi
76 (cd $JARD; "$JAR" ${TESTTOOLVMOPTS} -cf ../p$n.jar *)
77 done
78
79 mv p3.jar $EXTD
80
81 cp $TESTCLASSES/Load.class $TESTD
82 cp $TESTCLASSES/FooService.class $TESTD
83 cp $TESTCLASSES/FooProvider1.class $TESTD
84 mkdir -p $TESTD/META-INF/services
85 echo FooProvider1 \
86 >$TESTD/META-INF/services/FooService
87
88 # This gives us:
89 # $TESTD: FooProvider1
90 # . : FooProvider2, in p2.jar
91 # $EXTD: FooProvider3, in p3.jar
92
93 fi
94
95 failures=0
96
97 go() {
98 echo ''
100 if [ -z "$cp" ]; then cp="$TESTCLASSES"; else cp="$TESTCLASSES$SEP$cp"; fi
101 vmargs="$1"; shift
102 sh -xc "'$JAVA' ${TESTVMOPTS} -cp $cp $vmargs $T $*" 2>&1
103 if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
104 }
105
106
107 # Java-level tests
108
109 T=Basic
110 go ".${SEP}$TESTD${SEP}p2.jar" ""
111
112 # Success cases
113
114 T=Load
115
116 go "$TESTD" "" FooProvider1
117
118 go ".${SEP}p2.jar" "" FooProvider2
119
120 go "${P3JAR}${SEP}p2.jar" "" FooProvider3 FooProvider2
121
122 go "$TESTD${SEP}p2.jar" "" FooProvider1 FooProvider2
123
124 go "${P3JAR}${SEP}$TESTD" "" FooProvider3 FooProvider1
125
126 go "${P3JAR}${SEP}$TESTD${SEP}p2.jar" "" \
127 FooProvider3 FooProvider1 FooProvider2
128
129 # Failure cases
130
131 mkdir -p x.meta/META-INF/services
132
133 # Simple failures
134 for p in FooProvider42 'blah blah' 9234 'X!' BarProvider; do
135 echo $p >x.meta/META-INF/services/FooService
136 go ".${SEP}x.meta" "" fail
137 done
138
139 # Failures followed by successes
|
59 TESTD=x.test
60 P3JAR=${EXTD}${FS}p3.jar
61
62 if [ \! -d $EXTD ]; then
63 # Initialize
64 echo Initializing...
65 rm -rf $JARD $EXTD $TESTD
66 mkdir -p $JARD $EXTD $TESTD
67
68 for n in 2 3; do
69 rm -rf $JARD/*; mkdir -p $JARD/META-INF/services
70 echo FooProvider$n \
71 >$JARD/META-INF/services/FooService
72 cp $TESTCLASSES/FooProvider$n.class $JARD
73 if [ $n = 3 ]; then
74 cp $TESTCLASSES/FooService.class $JARD
75 fi
76 (cd $JARD; "$JAR" ${TESTTOOLVMOPTS} -cf ../p$n.jar *)
77 done
78
79 cp p2.jar p2dup.jar
80 mv p3.jar $EXTD
81
82 cp $TESTCLASSES/Load.class $TESTD
83 cp $TESTCLASSES/FooService.class $TESTD
84 cp $TESTCLASSES/FooProvider1.class $TESTD
85 mkdir -p $TESTD/META-INF/services
86 echo FooProvider1 \
87 >$TESTD/META-INF/services/FooService
88
89 # This gives us:
90 # $TESTD: FooProvider1
91 # . : FooProvider2, in p2.jar
92 # $EXTD: FooProvider3, in p3.jar
93
94 fi
95
96 failures=0
97
98 go() {
99 echo ''
101 if [ -z "$cp" ]; then cp="$TESTCLASSES"; else cp="$TESTCLASSES$SEP$cp"; fi
102 vmargs="$1"; shift
103 sh -xc "'$JAVA' ${TESTVMOPTS} -cp $cp $vmargs $T $*" 2>&1
104 if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
105 }
106
107
108 # Java-level tests
109
110 T=Basic
111 go ".${SEP}$TESTD${SEP}p2.jar" ""
112
113 # Success cases
114
115 T=Load
116
117 go "$TESTD" "" FooProvider1
118
119 go ".${SEP}p2.jar" "" FooProvider2
120
121 go ".${SEP}p2.jar${SEP}p2dup.jar" "" FooProvider2
122
123 go "${P3JAR}${SEP}p2.jar" "" FooProvider3 FooProvider2
124
125 go "$TESTD${SEP}p2.jar" "" FooProvider1 FooProvider2
126
127 go "${P3JAR}${SEP}$TESTD" "" FooProvider3 FooProvider1
128
129 go "${P3JAR}${SEP}$TESTD${SEP}p2.jar" "" \
130 FooProvider3 FooProvider1 FooProvider2
131
132 # Failure cases
133
134 mkdir -p x.meta/META-INF/services
135
136 # Simple failures
137 for p in FooProvider42 'blah blah' 9234 'X!' BarProvider; do
138 echo $p >x.meta/META-INF/services/FooService
139 go ".${SEP}x.meta" "" fail
140 done
141
142 # Failures followed by successes
|