package com.alibaba.doris.dataserver.store.innodb;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.Before;
import com.alibaba.doris.common.config.ConfigTools;
import com.alibaba.doris.dataserver.store.Storage;
import com.alibaba.doris.dataserver.store.StorageConfig;
import com.alibaba.doris.dataserver.store.StorageDriver;
import com.alibaba.doris.dataserver.store.StorageTestUnit;
import com.alibaba.doris.dataserver.store.innodb.config.InnoDBDatabaseConfiguration;
public class InnodbStorageTest extends StorageTestUnit {
@Override
protected Storage getStorage() {
return this.storage;
}
@Before
public void setUp() throws Exception {
clear();
try {
driver = (StorageDriver) InnoDBStorageDriver.class.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
StorageConfig config = getStorageConfig();
driver.init(config);
InnoDBDatabaseConfiguration innodbConf = ((InnoDBStorageDriver)driver).getConfig();
innodbConf.setDataHomeDir(getDatabasePath());
innodbConf.setLogFileHomeDirectory(getDatabasePath());
storage = driver.createStorage();
super.setUp();
}
public StorageConfig getStorageConfig() {
String path = ConfigTools.getCurrentClassPath(this.getClass());
StorageConfig config = new StorageConfig();
config.setPropertiesFile(path + File.separatorChar + "innodb.properties");
config.setSize(5000);
config.setStorageDriverClass("com.alibaba.doris.dataserver.store.innodb.InnoDBStorageDriver");
config.setStorageTypeClass("");
return config;
}
@After
public void tearDown() throws Exception {
super.tearDown();
}
private String getDatabasePath(){
return InnodbStorageTest.class.getClassLoader().getResource("").getPath() + "innodb_test" + File.separatorChar;
}
private void clear() {
try {
Thread.sleep(5);
FileUtils.forceDelete(new File(getDatabasePath()));
} catch (FileNotFoundException ignore) {
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
}
File f = new File(getDatabasePath());
f.mkdir();
}
private StorageDriver driver;
private Storage storage;
}