Browse Source

add test case for having no indexes, and fix regression in that case

debian/1.8.y
Martin Pitt 12 years ago
parent
commit
915f052064
  1. 44
      apt-pkg/deb/debindexfile.cc
  2. 8
      test/test-indexes.sh

44
apt-pkg/deb/debindexfile.cc

@ -149,11 +149,20 @@ bool debSourcesIndex::Exists() const
/* */
unsigned long debSourcesIndex::Size() const
{
unsigned long size = 0;
/* we need to ignore errors here; if the lists are absent, just return 0 */
_error->PushToStack();
FileFd f = FileFd (IndexFile("Sources"), FileFd::ReadOnlyGzip);
if (!f.Failed())
size = f.Size();
if (f.Failed())
return 0;
return f.Size();
if (_error->PendingError() == true)
size = 0;
_error->RevertToStack();
return size;
}
/*}}}*/
@ -269,11 +278,20 @@ bool debPackagesIndex::Exists() const
/* This is really only used for progress reporting. */
unsigned long debPackagesIndex::Size() const
{
unsigned long size = 0;
/* we need to ignore errors here; if the lists are absent, just return 0 */
_error->PushToStack();
FileFd f = FileFd (IndexFile("Packages"), FileFd::ReadOnlyGzip);
if (!f.Failed())
size = f.Size();
if (f.Failed())
return 0;
return f.Size();
if (_error->PendingError() == true)
size = 0;
_error->RevertToStack();
return size;
}
/*}}}*/
// PackagesIndex::Merge - Load the index file into a cache /*{{{*/
@ -460,12 +478,20 @@ bool debTranslationsIndex::Exists() const
/* This is really only used for progress reporting. */
unsigned long debTranslationsIndex::Size() const
{
unsigned long size = 0;
/* we need to ignore errors here; if the lists are absent, just return 0 */
_error->PushToStack();
FileFd f = FileFd (IndexFile(Language), FileFd::ReadOnlyGzip);
if (!f.Failed())
size = f.Size();
if (f.Failed())
return 0;
if (_error->PendingError() == true)
size = 0;
_error->RevertToStack();
return f.Size();
return size;
}
/*}}}*/
// TranslationsIndex::Merge - Load the index file into a cache /*{{{*/

8
test/test-indexes.sh

@ -135,6 +135,14 @@ echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list
echo "RootDir \"$WORKDIR\";" > apt_config
export APT_CONFIG=`pwd`/apt_config
echo "==== no indexes ===="
echo '--- apt-get check works without indexes'
[ -z `$APT_GET check` ]
echo '--- apt-cache policy works without indexes'
$APT_CACHE policy bash >/dev/null
echo '--- apt-cache show works without indexes'
! LC_MESSAGES=C $APT_CACHE show bash 2>&1| grep -q 'E: No packages found'
echo "===== uncompressed indexes ====="
check_update
check_indexes

Loading…
Cancel
Save