in src/config.rs [1605:1663]
fn server_toml_parse() {
use server::BuilderType;
use server::SchedulerAuth;
const CONFIG_STR: &str = r#"
# This is where client toolchains will be stored.
cache_dir = "/tmp/toolchains"
# The maximum size of the toolchain cache, in bytes.
# If unspecified the default is 10GB.
toolchain_cache_size = 10737418240
# A public IP address and port that clients will use to connect to this builder.
public_addr = "192.168.1.1:10501"
# The socket address the builder will listen on.
bind_address = "0.0.0.0:10501"
# The URL used to connect to the scheduler (should use https, given an ideal
# setup of a HTTPS server in front of the scheduler)
scheduler_url = "https://192.168.1.1"
[builder]
type = "overlay"
# The directory under which a sandboxed filesystem will be created for builds.
build_dir = "/tmp/build"
# The path to the bubblewrap version 0.3.0+ `bwrap` binary.
bwrap_path = "/usr/bin/bwrap"
[scheduler_auth]
type = "jwt_token"
# This will be generated by the `generate-jwt-hs256-server-token` command or
# provided by an administrator of the sccache cluster.
token = "my server's token"
"#;
let server_config: server::Config = toml::from_str(CONFIG_STR).expect("Is valid toml.");
assert_eq!(
server_config,
server::Config {
builder: BuilderType::Overlay {
build_dir: PathBuf::from("/tmp/build"),
bwrap_path: PathBuf::from("/usr/bin/bwrap"),
},
cache_dir: PathBuf::from("/tmp/toolchains"),
public_addr: "192.168.1.1:10501"
.parse()
.expect("Public address must be valid socket address"),
bind_address: Some(
"0.0.0.0:10501"
.parse()
.expect("Bind address must be valid socket address")
),
scheduler_url: parse_http_url("https://192.168.1.1")
.map(|url| { HTTPUrl::from_url(url) })
.expect("Scheduler url must be valid url str"),
scheduler_auth: SchedulerAuth::JwtToken {
token: "my server's token".to_owned()
},
toolchain_cache_size: 10737418240,
}
)
}