fn parse_config()

in key/aziot-keyd-config/src/lib.rs [71:130]


    fn parse_config() {
        let actual = r#"
max_requests = 50

[aziot_keys]
homedir_path = "/var/lib/aziot/keyd"
pkcs11_lib_path = "/usr/lib64/pkcs11/libsofthsm2.so"
pkcs11_base_slot = "pkcs11:token=Key pairs?pin-value=1234"

[preloaded_keys]
bootstrap = "file:///var/secrets/bootstrap.key"
device-id = "pkcs11:token=Key pairs;object=device-id?pin-value=1234"

[[principal]]
uid = 1000
keys = ["test"]
"#;
        let actual: super::Config = toml::from_str(actual).unwrap();

        assert_eq!(
            actual,
            super::Config {
                max_requests: 50,
                aziot_keys: [
                    ("homedir_path", "/var/lib/aziot/keyd"),
                    ("pkcs11_lib_path", "/usr/lib64/pkcs11/libsofthsm2.so"),
                    ("pkcs11_base_slot", "pkcs11:token=Key pairs?pin-value=1234"),
                ]
                .iter()
                .map(|&(name, value)| (name.to_owned(), value.to_owned()))
                .collect(),

                preloaded_keys: [
                    ("bootstrap", "file:///var/secrets/bootstrap.key"),
                    (
                        "device-id",
                        "pkcs11:token=Key pairs;object=device-id?pin-value=1234"
                    ),
                ]
                .iter()
                .map(|&(name, value)| (name.to_owned(), value.to_owned()))
                .collect(),

                endpoints: super::Endpoints {
                    aziot_keyd: http_common::Connector::Unix {
                        socket_path: std::path::Path::new(concat!(
                            env!("SOCKET_DIR"),
                            "/keyd.sock"
                        ))
                        .into()
                    },
                },

                principal: vec![super::Principal {
                    uid: 1000,
                    keys: vec!["test".to_owned()]
                }],
            }
        );
    }