ソースを参照

add basic tests for GetTempDir()

Michael Vogt 12 年 前
コミット
a077861ad0
共有2 個のファイルを変更した14 個の追加1 個の削除を含む
  1. 1 1
      apt-pkg/contrib/fileutl.cc
  2. 13 0
      test/libapt/fileutl_test.cc

+ 1 - 1
apt-pkg/contrib/fileutl.cc

@@ -1839,7 +1839,7 @@ std::string GetTempDir()
 
    // check that tmpdir is set and exists
    struct stat st;
-   if (!tmpdir || stat(tmpdir, &st) != 0)
+   if (!tmpdir || strlen(tmpdir) == 0 || stat(tmpdir, &st) != 0)
       tmpdir = "/tmp";
 
    return string(tmpdir);

+ 13 - 0
test/libapt/fileutl_test.cc

@@ -38,5 +38,18 @@ int main(int argc,char *argv[])
       return 1;
    }
 
+   // GetTempDir()
+   unsetenv("TMPDIR");
+   equals(GetTempDir(), "/tmp");
+
+   setenv("TMPDIR", "", 1);
+   equals(GetTempDir(), "/tmp");
+
+   setenv("TMPDIR", "/not-there-no-really-not", 1);
+   equals(GetTempDir(), "/tmp");
+
+   setenv("TMPDIR", "/usr", 1);
+   equals(GetTempDir(), "/usr");
+
    return 0;
 }