Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/io/tst/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 21.5.2025 mit Größe 2 kB image not shown  

Quelle  compression.g   Sprache: unbekannt

 
# NOTE: This test reads this first line!!

# This file tests we can read compressed files

# We use this to general unique filenames, for parallel testing
basepid := String(IO_getpid());

LoadPackage("io");
d := DirectoriesPackageLibrary("io", "tst");

checkCompression := function(original_filename)
    local f, lines, filename, x;
    filename := Concatenation(basepid, original_filename);

    # Lets hope we can write to the current directory
    f := IO_CompressedFile(filename, "w");

    if f = fail then
       Error("Unable to create compressed file ", filename, ": ", 2);
    fi;

    if IO_WriteLine(f, "xyz") = fail then
      Error("Invalid write to compressed file ", filename, ": ", 3);
    fi;

    IO_Close(f);

    # Let's check we can append
    f := IO_CompressedFile(filename, "a");

    if f = fail then
       Error("Unable to append to compressed file ", filename, ": ", 4);
    fi;

    if IO_WriteLine(f, "abc") = fail then
      Error("Invalid write to compressed file ", filename, ": ", 5);
    fi;

    IO_Close(f);

    # Let's check we can read what we've written
    f := IO_CompressedFile(filename, "r");

    x := IO_ReadLines(f);
    if x <> [ "xyz\n", "abc\n" ] and x <> [ "xyz\r\n", "abc\r\n" ] then
      Print("Unexpected contents of compressed file: ", x, "\n");
      Error("Unable to read compressed file ", filename, " correctly: ", 6);
    fi;
    
    IO_Close(f);

    IO_unlink(filename);
end;

# Check no compression works
checkCompression("tmpcompfile.txt");

f := IO_CompressedFile(Filename(d,"compression.g"), "r");
if IO_ReadLine(f) <> "# NOTE: This test reads this first line!!\n" then
   Error("IO_CompressedFile is broken on uncompressed files: ", 7);
fi;

IO_Close(f);

# First let's check a pre-existing compressed file:
if IO_FindExecutable("gzip") <> fail then
    f := IO_CompressedFile(Filename(d,"test.txt.gz"), "r");

    lines := IO_ReadLines(f);

    if lines <> [ "Line\n", "Another Line\n", "Final Line\n", "\n" ] then
        Error("Invalid reading of compressed file: ",1);
    fi;

    IO_Close(f);

    # Now lets check we can create files

    checkCompression("tmpcompfile.gz");
fi;

# Only do these if the executable exists
if IO_FindExecutable("bzip2") <> fail then
    checkCompression("tmpcompfile.bz2");
fi;

if IO_FindExecutable("xz") <> fail then
    checkCompression("tmpcompfile.xz");
fi;

[ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ]