]>
git.saurik.com Git - apt.git/blob - test/integration/test-apt-tagfile-fields-order
   4 TESTDIR
="$(readlink -f "$(dirname "$0")")" 
   8 dpkg_field_ordered_list() { 
   9         local FIELDS="$
(perl 
-e " 
  11 use Dpkg::Control::Fields; 
  12 foreach \$f (field_ordered_list(${1})) { 
  15         if [ -z "$FIELDS" ]; then 
  16                 msgfail 'Could not get fields via libdpkg-perl' 
  22         local DIFFOUTPUT="$(diff -u apt.lst dpkg.lst || true)" 
  23         if echo "$DIFFOUTPUT" | grep -q '^+[^+]'; then 
  25                 echo "$DIFFOUTPUT" | grep '^[+-][^+-]' 
  32 msgtest 'Check that apt knows all fields dpkg orders in' 'Packages' 
  33 dpkg_field_ordered_list 'CTRL_INDEX_PKG' > dpkg.lst 
  34 sed -ne 's#^   "\
(.
*\
)",.*$#\1#p' "${SOURCEDIRECTORY}/apt
-pkg/tagfile
-order.c
" | sed -n '/^Package$/,/^Package$/ p' | head -n -1 | sort -u > apt.lst 
  37 msgtest 'Check that apt knows all fields dpkg orders in' 'status' 
  38 dpkg_field_ordered_list 'CTRL_FILE_STATUS' > dpkg.lst 
  41 msgtest 'Check that apt knows all fields dpkg orders in' 'DEBIAN/control' 
  42 dpkg_field_ordered_list 'CTRL_PKG_DEB' > dpkg.lst 
  45 msgtest 'Check that apt knows all fields dpkg orders in' 'Sources' 
  46 dpkg_field_ordered_list 'CTRL_INDEX_SRC' > dpkg.lst 
  47 echo 'Package' > apt.tmp 
  48 sed -ne 's#^   "\
(.
*\
)",.*$#\1#p' "${SOURCEDIRECTORY}/apt
-pkg/tagfile
-order.c
" | sed '/^Package$/,/^Package$/ d' >> apt.tmp 
  49 sort -u apt.tmp > apt.lst 
  52 msgtest 'Check that apt knows all fields dpkg orders in' 'dsc' 
  53 dpkg_field_ordered_list 'CTRL_PKG_SRC' > dpkg.lst 
  56 # HACK, but there is no good way to acquire sources in tests and/or to remember to run this regular manually 
  57 if [ "$USER" = 'david' ]; then 
  58         msgtest 'Check if we have somewhere the sources of' 'dpkg' 
  59         DPKGSOURCE="$(locate dpkg/lib/dpkg/parse.c  | head -n 1 || true)" 
  60         if [ -z "$DPKGSOURCE" ]; then 
  64                 msgtest 'Check that apt knows about all fields' 'dpkg parses' 
  65                 sed -n 's#^.*FIELD("\
(.
*\
)").*$#\1#p' "${DPKGSOURCE}" | sort -u > dpkg.lst 
  66                 sed -ne 's#^   "\
(.
*\
)",.*$#\1#p' "${SOURCEDIRECTORY}/apt
-pkg/tagfile
-order.c
" | sed -n '/^Package$/,/^Package$/ p' | head -n -1 | sort -u > apt.lst 
  70         msgtest 'Check if we have somewhere the sources of' 'dak' 
  71         DAKSOURCE="$(locate dak/setup/core-init.d/080_metadatakeys | head -n 1 || true)" 
  72         if [ -z "$DAKSOURCE" ]; then 
  76                 msgtest 'Check that apt knows about all fields' 'dak knows' 
  77                 # dak mixes both, so we can only check with the mixed one as well 
  78                 sed -ne "s
#^.* VALUES ('\(.*\)', \(.*\)).*\$#\1 \2#p" "${DAKSOURCE}" | cut -d ' ' -f 1 | sort -u > dpkg.lst 
  79                 sed -ne 's#^   "\(.*\)",.*$#\1#p' "${SOURCEDIRECTORY}/apt-pkg/tagfile-order.c" | sort -u > apt.lst