You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
3.8 KiB

/*
* Copyright (c) 2013 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package frontend.c;
import org.junit.Rule;
import org.junit.Test;
import java.io.IOException;
import utils.DebuggableTemporaryFolder;
import utils.InferException;
import utils.ClangFrontendUtils;
public class LoopsTest {
String loopsBasePath = "infer/tests/codetoanalyze/c/frontend/loops/";
@Rule
public DebuggableTemporaryFolder folder = new DebuggableTemporaryFolder();
void frontendTest(String fileRelative) throws InterruptedException, IOException, InferException {
ClangFrontendUtils.createAndCompareCDotFiles(folder, loopsBasePath + fileRelative);
}
@Test
public void whenCaptureRunOnWhileThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("while.c");
}
@Test
public void whenCaptureRunOnWhile_nestedThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("while_nested.c");
}
@Test
public void whenCaptureRunOnWhile_side_effectsThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("while_condition_side_effects.c");
}
@Test
public void whenCaptureRunOnWhile_no_bodyThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("while_no_body.c");
}
@Test
public void whenCaptureRunOnForside_effectsThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_condition_side_effects.c");
}
@Test
public void whenCaptureRunOnFor_nestedThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_nested.c");
}
@Test
public void whenCaptureRunOnFor_no_conditionThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_no_condition.c");
}
@Test
public void whenCaptureRunOnFor_no_conditionincrThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_no_condition_incr.c");
}
@Test
public void whenCaptureRunOnFor_emptyThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_no_condition_incr_body.c");
}
@Test
public void whenCaptureRunOnFor_only_bodyThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_only_body.c");
}
@Test
public void whenCaptureRunOnFor_simpleThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_simple.c");
}
@Test
public void whenCaptureRunOnFor_while_nestedThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("for_while_nested.c");
}
@Test
public void whenCaptureRunOnDo_whileThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("do_while.c");
}
@Test
public void whenCaptureRunOnDo_while_side_effectsThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("do_while_condition_side_effects.c");
}
@Test
public void whenCaptureRunOnDo_while_nestedThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("do_while_nested.c");
}
@Test
public void whenCaptureWhile_with_continue_and_breakThenDotFilesAreTheSame()
throws InterruptedException, IOException, InferException {
frontendTest("while_with_continue_and_break.c");
}
}