List of usage examples for org.apache.commons.compress.archivers.ar ArArchiveEntry getLastModified
public long getLastModified()
From source file:com.facebook.buck.cxx.ArchiveStepIntegrationTest.java
@Test @SuppressWarnings("PMD.AvoidUsingOctalValues") public void thatGeneratedArchivesAreDeterministic() throws IOException, InterruptedException { assumeTrue(Platform.detect() == Platform.MACOS || Platform.detect() == Platform.LINUX); ProjectFilesystem filesystem = new ProjectFilesystem(tmp.getRoot()); CxxPlatform platform = CxxPlatformUtils.build(new CxxBuckConfig(FakeBuckConfig.builder().build())); // Build up the paths to various files the archive step will use. SourcePathResolver sourcePathResolver = new SourcePathResolver(new SourcePathRuleFinder( new BuildRuleResolver(TargetGraph.EMPTY, new DefaultTargetNodeToBuildRuleTransformer()))); Archiver archiver = platform.getAr(); Path output = filesystem.getPath("output.a"); Path input = filesystem.getPath("input.dat"); filesystem.writeContentsToPath("blah", input); Preconditions.checkState(filesystem.resolve(input).toFile().setExecutable(true)); // Build an archive step. ArchiveStep archiveStep = new ArchiveStep(filesystem, archiver.getEnvironment(), archiver.getCommandPrefix(sourcePathResolver), ImmutableList.of(), getArchiveOptions(false), output, ImmutableList.of(input), archiver); FileScrubberStep fileScrubberStep = new FileScrubberStep(filesystem, output, platform.getAr().getScrubbers()); // Execute the archive step and verify it ran successfully. ExecutionContext executionContext = TestExecutionContext.newInstance(); TestConsole console = (TestConsole) executionContext.getConsole(); int exitCode = archiveStep.execute(executionContext).getExitCode(); assertEquals("archive step failed: " + console.getTextWrittenToStdErr(), 0, exitCode); exitCode = fileScrubberStep.execute(executionContext).getExitCode(); assertEquals("archive scrub step failed: " + console.getTextWrittenToStdErr(), 0, exitCode); // Now read the archive entries and verify that the timestamp, UID, and GID fields are // zero'd out. try (ArArchiveInputStream stream = new ArArchiveInputStream( new FileInputStream(filesystem.resolve(output).toFile()))) { ArArchiveEntry entry = stream.getNextArEntry(); assertEquals(ObjectFileCommonModificationDate.COMMON_MODIFICATION_TIME_STAMP, entry.getLastModified()); assertEquals(0, entry.getUserId()); assertEquals(0, entry.getGroupId()); assertEquals(String.format("0%o", entry.getMode()), 0100644, entry.getMode()); }/*from w ww .ja v a 2s . c o m*/ }