aboutsummaryrefslogtreecommitdiffstats
path: root/testutil/src/main/java/com/yahoo/vespa/test/file/TestFileSystem.java
blob: 65d3498a5dd6d3a607d93c1524803c69f55a6a76 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

package com.yahoo.vespa.test.file;

import com.google.common.jimfs.Configuration;
import com.google.common.jimfs.Feature;
import com.google.common.jimfs.Jimfs;
import com.google.common.jimfs.PathType;

import java.nio.file.FileSystem;

public class TestFileSystem {
    public static FileSystem create() {
        // This configuration is based on Configuration.unix(), except:
        //  - Use "posix" attribute view which is necessary for permissions, owner, and group.
        Configuration configuration = Configuration.builder(PathType.unix())
                .setRoots("/")
                .setWorkingDirectory("/work")
                .setAttributeViews("posix")
                .setSupportedFeatures(Feature.LINKS, Feature.SYMBOLIC_LINKS, Feature.SECURE_DIRECTORY_STREAM, Feature.FILE_CHANNEL)
                .build();
        return Jimfs.newFileSystem(configuration);
    }

    private TestFileSystem() { }
}