1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
#!/bin/sh -
#
# Reconcile the list of public defines with the man pages and the Java files.
d=../..
[ -f $d/LICENSE ] || {
echo 'FAIL: cannot find source distribution directory.'
exit 1
}
p=$d/dist/pubdef.in
exitv=0
# Check that pubdef.in has everything listed in m4.links.
f=$d/docs_src/m4/m4.links
sed -n \
-e 's/^\$1, \(DB_[^,]*\).*/\1/p' \
-e d < $f |
while read name; do
if `egrep -w "$name" $p > /dev/null`; then
:
else
echo "$f: $name is missing from $p"
exitv=1
fi
done
# Check that m4.links has everything listed in pubdef.in.
f=$d/docs_src/m4/m4.links
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep -w "^.1, $name" $f > /dev/null`; then
[ "X$isdoc" != "XD" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isdoc" = "XD" ] && {
echo "$name does not appear in $f"
exitv=1;
}
fi
done
# Check that pubdef.in has everything listed in db.in.
f=$d/dbinc/db.in
sed -n \
-e 's/^#define[ ]*\(DB_[A-Z_0-9]*\).*/\1/p' \
-e 's/^[ ]*\(DB_[A-Z_]*\)=[0-9].*/\1/p' \
-e d < $f |
while read name; do
if `egrep -w "$name" $p > /dev/null`; then
:
else
echo "$f: $name is missing from $p"
exitv=1
fi
done
# Check that db.in has everything listed in pubdef.in.
f=$d/dbinc/db.in
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep -w "#define[ ]$name|[ ][ ]*$name=[0-9][0-9]*" \
$f > /dev/null`; then
[ "X$isinc" != "XI" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isinc" = "XI" ] && {
echo "$name does not appear in $f"
exitv=1
}
fi
done
# Check that pubdef.in has everything listed in DbConstants.java.
f=$d/java/src/com/sleepycat/db/DbConstants.java
sed -n -e 's/.*static final int[ ]*\([^ ]*\).*/\1/p' < $f |
while read name; do
if `egrep -w "$name" $p > /dev/null`; then
:
else
echo "$f: $name is missing from $p"
exitv=1
fi
done
# Check that DbConstants.java has everything listed in pubdef.in.
f=$d/java/src/com/sleepycat/db/DbConstants.java
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep -w "static final int[ ]$name =" $f > /dev/null`; then
[ "X$isjava" != "XJ" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isjava" = "XJ" ] && {
echo "$name does not appear in $f"
exitv=1
}
fi
done
# Check that pubdef.in has everything listed in Db.java.
f=$d/java/src/com/sleepycat/db/Db.java
sed -n -e 's/.*static final int[ ]*\([^ ;]*\).*/\1/p' < $f |
while read name; do
if `egrep -w "$name" $p > /dev/null`; then
:
else
echo "$f: $name is missing from $p"
exitv=1;
fi
done
sed -n -e 's/^[ ]*\([^ ]*\) = DbConstants\..*/\1/p' < $f |
while read name; do
if `egrep -w "$name" $p > /dev/null`; then
:
else
echo "$f: $name is missing from $p"
exitv=1
fi
done
# Check that Db.java has all of the Java case values listed in pubdef.in.
# Any J entries should appear twice -- once as a static final int, with
# no initialization value, and once assigned to the DbConstants value. Any
# C entries should appear once as a static final int, with an initialization
# value.
f=$d/java/src/com/sleepycat/db/Db.java
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep -w "static final int[ ]$name;$" $f > /dev/null`; then
[ "X$isjava" != "XJ" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isjava" = "XJ" ] && {
echo "$name does not appear in $f"
exitv=1
}
fi
done
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep -w "= DbConstants.$name;" $f > /dev/null`; then
[ "X$isjava" != "XJ" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isjava" = "XJ" ] && {
echo "$name does not appear in $f"
exitv=1
}
fi
done
sed '/^#/d' $p |
while read name isdoc isinc isjava; do
if `egrep "static final int[ ]$name =.*;" $f > /dev/null`; then
[ "X$isjava" != "XC" ] && {
echo "$name should not appear in $f"
exitv=1
}
else
[ "X$isjava" = "XC" ] && {
echo "$name does not appear in $f"
exitv=1
}
fi
done
exit $exitv
|