aboutsummaryrefslogtreecommitdiffstats
path: root/testutil/src/main/java/com/yahoo/vespa/test/file/TestFileSystem.java
blob: b581c797d648cedc4bfe689b869ae59139246100 (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
// Copyright Vespa.ai. 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 custom attribute provider view which is necessary for uid and gid.
        Configuration configuration = Configuration.builder(PathType.unix())
                .setRoots("/")
                .setWorkingDirectory("/work")
                .addAttributeProvider(new UnixUidGidAttributeProvider())
                .setSupportedFeatures(Feature.LINKS, Feature.SYMBOLIC_LINKS, Feature.SECURE_DIRECTORY_STREAM, Feature.FILE_CHANNEL)
                .build();
        return Jimfs.newFileSystem(configuration);
    }

    private TestFileSystem() { }
}