Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: bazelbuild/bazel
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: willstranton/bazel
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 6 commits
  • 9 files changed
  • 1 contributor

Commits on Oct 15, 2025

  1. Add support for decompressing .7z files

    This implementation follows the implementation of ZipDecompressor with the
    exception that .7z files do not handle symbolic links or preserving file
    permissions.  The commit 9c98120 where
    .ar/.deb support was added, was used as a reference for what additional files
    to change.
    
    Closes #27231
    willstranton committed Oct 15, 2025
    Configuration menu
    Copy the full SHA
    fa0051d View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2025

  1. Fix various errors in SevenZDecompressorTest

    The test was using the same decompressed output directory that other tests were
    using, a generic "out" directory. So test results were verifying/depending on
    the output of those other tests.  Now the test uses /* outDirName= */
    this.getClass().getSimpleName()
    
    Fixing that revealed that the expected decompressed file was named wrong:
    
    wrong: root_folder/another_folder/regular_file
    right: root_folder/another_folder/regularFile
    
    Instead of using `archiveDescriptor.assertOutputFiles`, which relied on the
    output of other tests, we now inline the exact assertions we need.
    
    Previously, the assertions would check that a file's `exists()` method was
    true. This didn't produce the most friendly test output.  For example:
    
    > value of: exists()
    > expected to be false
    
    Now we get a directory listing of entries and check for the file in that list:
    
    > expected to contain: myfile
    > but was            : [regularFile, renamedFile]
    
    For the unicode test, we now make use of `StringEncoding::internalToUnicode`
    when reading directory entries and `StringEncoding::unicodeToInternal` when
    checking for a files existence. This is because meteorcloudy@ reported that
    internal tests failed, which I am making an educated guess that it has
    something to do with the string encoding.
    willstranton committed Oct 18, 2025
    Configuration menu
    Copy the full SHA
    86270f4 View commit details
    Browse the repository at this point in the history
  2. Fix hermeticity of test fs

    Each test was using the same output directory for the decompressed files (was this.getClass().getSimpleName()).
    This would cause problems as the decompression of files in one test would affect other tests.
    
    Now each test creates their own TestArchiveDescriptor with the output directory being set to:
    
    > this.getClass().getSimpleName() + "_" + name.getMethodName()
    
    As an example, for `testDecompressWithRenamedFiles` the directory would be:
    
    > SevenZDecompressorTest_testDecompressWithRenamedFiles
    willstranton committed Oct 18, 2025
    Configuration menu
    Copy the full SHA
    7f9c155 View commit details
    Browse the repository at this point in the history
  3. Change internalToUnicode/unicodeToInternal -> internalToPlatform/plat…

    …formToInternal
    
    I have no idea what I'm doing - in this case, it seems like using the platform
    variant is better since it checks if encoding/reencoding on a platform is
    needed at all before doing the encoding.  Seems safer than the previous calls.
    
    This is all being done because internal testing is failing on this change and I
    have no clue what is different internally since I don't work at Google.
    willstranton committed Oct 18, 2025
    Configuration menu
    Copy the full SHA
    4950332 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2025

  1. Revert "Change internalToUnicode/unicodeToInternal -> internalToPlatf…

    …orm/platformToInternal"
    
    This reverts commit 4950332.
    
    Per fmeum: since you are passing the result to the Truth assertion libraries,
    which expect regular Java Unicode strings
    willstranton committed Oct 20, 2025
    Configuration menu
    Copy the full SHA
    8e812e8 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2025

  1. Remove unicode file and test for SevenZDecompressor

    See discussion in #27269 - there was some internal testing difference for
    unicode files that we weren't able to figure out.  It works locally on my local
    mac computer but did not work inside Google for some reason.  Since this is the
    only decompression test that tried to test unicode files, we decided to drop
    it.  The thinking is that this would also occur in the other decompression
    tests if they also had a unicode file.  My own integration testing shows that
    it does work.
    willstranton committed Oct 22, 2025
    Configuration menu
    Copy the full SHA
    8603c6e View commit details
    Browse the repository at this point in the history
Loading