package com.cloudera.flume.agent;
import static org.junit.Assert.fail;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.Assume;
import org.junit.Test;
import com.cloudera.flume.ExampleData;
import com.cloudera.flume.conf.FlumeConfiguration;
import com.cloudera.util.OSUtils;
@Test
public void testOneshot()
throws InterruptedException {
final String[] simple = { "-1", "-n", "test", "-c",
"test: text(\"" + ExampleData.APACHE_REGEXES + "\") | null;" };
final AtomicReference<Exception> ref = new AtomicReference<Exception>();
Thread t = new Thread() {
try {
FlumeNode.setup(simple);
} catch (Exception e) {
ref.set(e);
}
}
};
t.start();
Thread.sleep(5000);
if (ref.get() != null) {
fail("an exception was thrown");
}
}
@Test(expected = IOException.class)
FlumeConfiguration.get().set(FlumeConfiguration.AGENT_LOG_DIR_NEW,
"/tmp/baddirfoobarama");
File f = new File("/tmp/baddirfoobarama");
f.deleteOnExit();
f.createNewFile();
final String[] simple = { "-1", "-n", "test", "-c",
"test: text(\"" + ExampleData.APACHE_REGEXES + "\") | null;" };
FlumeNode.setup(simple);
}
@Test
public void testBadPerms()
throws IOException, InterruptedException {
Assume.assumeTrue(!OSUtils.isWindowsOS());
try {
FlumeConfiguration.get().set(FlumeConfiguration.AGENT_LOG_DIR_NEW,
"/baddirfoobarama");
final String[] simple = { "-1", "-n", "test", "-c",
"test: text(\"" + ExampleData.APACHE_REGEXES + "\") | null;" };
FlumeNode.setup(simple);
} catch (IOException e) {
return;
}
fail("expected IOException");
}
}