diff options
Diffstat (limited to 'test/libapt')
-rw-r--r-- | test/libapt/fileutl_test.cc | 31 | ||||
-rw-r--r-- | test/libapt/install_progress_test.cc | 30 | ||||
-rw-r--r-- | test/libapt/makefile | 6 |
3 files changed, 67 insertions, 0 deletions
diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 8da832ba9..1d1a1a1b8 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -6,13 +6,44 @@ #include <string> #include <vector> #include <stdlib.h> +#include <sys/stat.h> #include "assert.h" +// regression test for permission bug LP: #1304657 +static bool +TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) +{ + FileFd f; + struct stat buf; + static const char* fname = "test.txt"; + + umask(a_umask); + f.Open(fname, FileFd::ReadWrite|FileFd::Atomic); + f.Close(); + if (stat(fname, &buf) < 0) + { + _error->Errno("stat", "failed to stat"); + _error->DumpErrors(); + return false; + } + unlink(fname); + equals(buf.st_mode & 0777, ExpectedFilePermission); + return true; +} + int main() { std::vector<std::string> files; + if (TestFileFdOpenPermissions(0002, 0664) == false || + TestFileFdOpenPermissions(0022, 0644) == false || + TestFileFdOpenPermissions(0077, 0600) == false || + TestFileFdOpenPermissions(0026, 0640) == false) + { + return 1; + } + // normal match files = Glob("*.lst"); if (files.size() != 1) diff --git a/test/libapt/install_progress_test.cc b/test/libapt/install_progress_test.cc new file mode 100644 index 000000000..be1a3411e --- /dev/null +++ b/test/libapt/install_progress_test.cc @@ -0,0 +1,30 @@ +#include <config.h> + +#include <apt-pkg/install-progress.h> + +#include <string> + +#include "assert.h" + +int main() { + APT::Progress::PackageManagerFancy p; + std::string s; + + s= p.GetTextProgressStr(0.5, 60); + equals(s.size(), 60); + + s= p.GetTextProgressStr(0.5, 4); + equals(s, "[#.]"); + + s= p.GetTextProgressStr(0.1, 12); + equals(s, "[#.........]"); + + s= p.GetTextProgressStr(0.9, 12); + equals(s, "[#########.]"); + + // deal with incorrect inputs gracefully (or should we die instead?) + s= p.GetTextProgressStr(-999, 12); + equals(s, ""); + + return 0; +} diff --git a/test/libapt/makefile b/test/libapt/makefile index 66d6ea783..e03b5e6aa 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -123,3 +123,9 @@ SLIBS = -lapt-pkg SOURCE = sourcelist_test.cc include $(PROGRAM_H) +# test install-progress +PROGRAM = InstallProgress${BASENAME} +SLIBS = -lapt-pkg +SOURCE = install_progress_test.cc +include $(PROGRAM_H) + |