Home | History | Annotate | Line # | Download | only in test
      1 /*-
      2  * SPDX-License-Identifier: BSD-2-Clause
      3  *
      4  * Copyright (c) 2003-2007 Tim Kientzle
      5  * Copyright (c) 2012 Michihiro NAKAJIMA
      6  * All rights reserved.
      7  */
      8 #include "test.h"
      9 
     10 DEFINE_TEST(test_option_lzma)
     11 {
     12 	char *p;
     13 	int r;
     14 	size_t s;
     15 
     16 	/* Create a file. */
     17 	assertMakeFile("f", 0644, "a");
     18 
     19 	/* Archive it with lzma compression. */
     20 	r = systemf("%s -cf - --lzma f >archive.out 2>archive.err",
     21 	    testprog);
     22 	p = slurpfile(&s, "archive.err");
     23 	p[s] = '\0';
     24 	if (r != 0) {
     25 		if (strstr(p, "Unsupported compression") != NULL) {
     26 			skipping("This version of bsdtar was compiled "
     27 			    "without lzma support");
     28 			free(p);
     29 			return;
     30 		}
     31 		failure("--lzma option is broken");
     32 		assertEqualInt(r, 0);
     33 		goto done;
     34 	}
     35 	free(p);
     36 	/* Check that the archive file has an lzma signature. */
     37 	p = slurpfile(&s, "archive.out");
     38 	assert(s > 2);
     39 	assertEqualMem(p, "\x5d\00\00", 3);
     40 done:
     41 	free(p);
     42 }
     43