public static List<String> parseLocationsFromConfig() throws InvalidConfException {
        List<String> locations = new ArrayList<>();
        URI uri;
        switch (Config.cloud_native_storage_type.toLowerCase()) {
            case "s3":
                uri = normalizeConfigPath(Config.aws_s3_path, "s3", "Config.aws_s3_path", true);
                locations.add(uri.toString());
                break;
            case "hdfs":
                // no need to validate the scheme, it can be hdfs compatible filesystem with customer defined scheme such as: viewfs, webhdfs, ...
                uri = normalizeConfigPath(Config.cloud_native_hdfs_url, "hdfs", "Config.cloud_native_hdfs_url", false);
                locations.add(uri.toString());
                break;
            case "azblob":
                uri = normalizeConfigPath(Config.azure_blob_path, "azblob", "Config.azure_blob_path", true);
                locations.add(uri.toString());
                break;
            default:
                return locations;
        }
        return locations;
    }
@Test
    public void testParseLocationsFromConfig() throws InvalidConfException {
        Config.cloud_native_storage_type = "s3";
        Config.aws_s3_path = "default-bucket/1";
        {
            List<String> locations = SharedDataStorageVolumeMgr.parseLocationsFromConfig();
            Assert.assertEquals(1, locations.size());
            Assert.assertEquals("s3://default-bucket/1", locations.get(0));
        }

        // with s3:// prefix
        Config.aws_s3_path = "s3://default-bucket/1";
        {
            List<String> locations = SharedDataStorageVolumeMgr.parseLocationsFromConfig();
            Assert.assertEquals(1, locations.size());
            Assert.assertEquals("s3://default-bucket/1", locations.get(0));
        }

        Config.aws_s3_path = "s3://default-bucket";
        {
            List<String> locations = SharedDataStorageVolumeMgr.parseLocationsFromConfig();
            Assert.assertEquals(1, locations.size());
            Assert.assertEquals("s3://default-bucket", locations.get(0));
        }

        Config.aws_s3_path = "s3://default-bucket/";
        {
            List<String> locations = SharedDataStorageVolumeMgr.parseLocationsFromConfig();
            Assert.assertEquals(1, locations.size());
            Assert.assertEquals("s3://default-bucket/", locations.get(0));
        }

        // with invalid prefix
        Config.aws_s3_path = "://default-bucket/1";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);
        // with wrong prefix
        Config.aws_s3_path = "hdfs://default-bucket/1";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);

        Config.aws_s3_path = "s3://";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);

        Config.aws_s3_path = "bucketname:30/b";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);

        Config.aws_s3_path = "/";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);

        Config.aws_s3_path = "";
        Assert.assertThrows(InvalidConfException.class, SharedDataStorageVolumeMgr::parseLocationsFromConfig);

        Config.cloud_native_storage_type = "hdfs";
        Config.cloud_native_hdfs_url = "hdfs://url";
        {
            List<String> locations = SharedDataStorageVolumeMgr.parseLocationsFromConfig();
            Assert.assertEquals(1, locations.size());
            Assert.assertEquals("hdfs://url", locations.get(0));
        }
    }