Browse Source

Fix temp file problem in log test cases (#908)

master
Lin.Liang Eric Zhao 5 years ago
parent
commit
61c8397e48
2 changed files with 51 additions and 19 deletions
  1. +24
    -5
      sentinel-core/src/test/java/com/alibaba/csp/sentinel/RecordLogTest.java
  2. +27
    -14
      sentinel-core/src/test/java/com/alibaba/csp/sentinel/slots/logger/EagleEyeLogUtilTest.java

+ 24
- 5
sentinel-core/src/test/java/com/alibaba/csp/sentinel/RecordLogTest.java View File

@@ -15,14 +15,14 @@
*/ */
package com.alibaba.csp.sentinel; package com.alibaba.csp.sentinel;


import java.io.File;

import com.alibaba.csp.sentinel.log.LogBase; import com.alibaba.csp.sentinel.log.LogBase;
import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.log.RecordLog;
import com.alibaba.csp.sentinel.util.PidUtil; import com.alibaba.csp.sentinel.util.PidUtil;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;


import java.io.File;

import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


/** /**
@@ -44,21 +44,27 @@ public class RecordLogTest {
} }
} }


@Test
//Change LogBase It is not not work when integration Testing
//Because LogBase.LOG_DIR can be just static init for once and it will not be changed
//@Test
public void testChangeLogBase() { public void testChangeLogBase() {

String userHome = System.getProperty("user.home"); String userHome = System.getProperty("user.home");
String newLogBase = userHome + File.separator + "tmpLogDir" + System.currentTimeMillis(); String newLogBase = userHome + File.separator + "tmpLogDir" + System.currentTimeMillis();
System.setProperty(LogBase.LOG_DIR, newLogBase); System.setProperty(LogBase.LOG_DIR, newLogBase);


RecordLog.info("testChangeLogBase"); RecordLog.info("testChangeLogBase");
String logFileName = RecordLog.getLogBaseDir(); String logFileName = RecordLog.getLogBaseDir();
Assert.assertTrue(newLogBase.equals(logFileName));
File[] files = new File(logFileName).listFiles(); File[] files = new File(logFileName).listFiles();
assertTrue(files != null && files.length > 0); assertTrue(files != null && files.length > 0);
deleteLogDir(new File(newLogBase));


} }


@Test @Test
public void testLogBaseDir() { public void testLogBaseDir() {
RecordLog.info("testLogBaseDir");
assertTrue(RecordLog.getLogBaseDir().startsWith(System.getProperty("user.home"))); assertTrue(RecordLog.getLogBaseDir().startsWith(System.getProperty("user.home")));
} }


@@ -88,4 +94,17 @@ public class RecordLogTest {
} }
} }


private void deleteLogDir(File logDirFile) {
if (logDirFile != null && logDirFile.isDirectory()) {
if (logDirFile.listFiles() != null) {
for (File file : logDirFile.listFiles()) {
file.delete();
}
}
logDirFile.delete();
}
}



} }

+ 27
- 14
sentinel-core/src/test/java/com/alibaba/csp/sentinel/slots/logger/EagleEyeLogUtilTest.java View File

@@ -1,19 +1,16 @@
package com.alibaba.csp.sentinel.slots.logger; package com.alibaba.csp.sentinel.slots.logger;


import java.io.File;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

import com.alibaba.csp.sentinel.log.LogBase; import com.alibaba.csp.sentinel.log.LogBase;
import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.log.RecordLog;

import org.hamcrest.CoreMatchers;
import org.hamcrest.Matchers;
import org.hamcrest.io.FileMatchers; import org.hamcrest.io.FileMatchers;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;


import java.io.File;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

import static org.awaitility.Awaitility.await; import static org.awaitility.Awaitility.await;
import static org.junit.Assert.*;


/** /**
* @author Carpenter Lee * @author Carpenter Lee
@@ -34,7 +31,9 @@ public class EagleEyeLogUtilTest {
}, FileMatchers.anExistingFile()); }, FileMatchers.anExistingFile());
} }


@Test
//Change LogBase It is not not work when integration Testing
//Because LogBase.LOG_DIR can be just static init for once and it will not be changed
//@Test
public void testChangeLogBase() throws Exception { public void testChangeLogBase() throws Exception {
String userHome = System.getProperty("user.home"); String userHome = System.getProperty("user.home");
String newLogBase = userHome + File.separator + "tmpLogDir" + System.currentTimeMillis(); String newLogBase = userHome + File.separator + "tmpLogDir" + System.currentTimeMillis();
@@ -42,13 +41,27 @@ public class EagleEyeLogUtilTest {


EagleEyeLogUtil.log("resourceName", "BlockException", "app1", "origin", 1); EagleEyeLogUtil.log("resourceName", "BlockException", "app1", "origin", 1);



final File file = new File(RecordLog.getLogBaseDir() + EagleEyeLogUtil.FILE_NAME); final File file = new File(RecordLog.getLogBaseDir() + EagleEyeLogUtil.FILE_NAME);
await().timeout(2, TimeUnit.SECONDS) await().timeout(2, TimeUnit.SECONDS)
.until(new Callable<File>() {
@Override
public File call() throws Exception {
return file;
.until(new Callable<File>() {
@Override
public File call() throws Exception {
return file;
}
}, FileMatchers.anExistingFile());
Assert.assertTrue(file.getAbsolutePath().startsWith(newLogBase));
deleteLogDir(new File(RecordLog.getLogBaseDir()));
}

private void deleteLogDir(File logDirFile) {
if (logDirFile != null && logDirFile.isDirectory()) {
if (logDirFile.listFiles() != null) {
for (File file : logDirFile.listFiles()) {
file.delete();
} }
}, FileMatchers.anExistingFile());
}
logDirFile.delete();
}
} }
} }

Loading…
Cancel
Save