Update the cmake rule to use LLVMFuzzer
(http://reviews.llvm.org/rL227252 is committed)


http://reviews.llvm.org/D7202

Files:
  tools/clang-format/CMakeLists.txt
  tools/clang-format/fuzzer/
  tools/clang-format/fuzzer/CMakeLists.txt
  tools/clang-format/fuzzer/ClangFormatFuzzer.cpp

Index: tools/clang-format/CMakeLists.txt
===================================================================
--- tools/clang-format/CMakeLists.txt
+++ tools/clang-format/CMakeLists.txt
@@ -11,6 +11,8 @@
   clangToolingCore
   )
 
+add_subdirectory(fuzzer)
+
 install(TARGETS clang-format RUNTIME DESTINATION bin)
 install(PROGRAMS clang-format-bbedit.applescript DESTINATION share/clang)
 install(PROGRAMS clang-format-diff.py DESTINATION share/clang)
Index: tools/clang-format/fuzzer/CMakeLists.txt
===================================================================
--- /dev/null
+++ tools/clang-format/fuzzer/CMakeLists.txt
@@ -0,0 +1,14 @@
+set(LLVM_LINK_COMPONENTS support)
+
+add_clang_executable(clang-format-fuzzer
+  EXCLUDE_FROM_ALL
+  ClangFormatFuzzer.cpp
+  )
+
+target_link_libraries(clang-format-fuzzer
+  clangBasic
+  clangFormat
+  clangRewrite
+  clangToolingCore
+  LLVMFuzzer
+  )
Index: tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
===================================================================
--- /dev/null
+++ tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
@@ -0,0 +1,25 @@
+//===-- clang-format/ClangFormatFuzzer.cpp - Fuzz the Clang format tool 
---===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// \brief This file implements a function that runs Clang format on a single
+///  input. This function is then linked into the Fuzzer library.
+///
+//===----------------------------------------------------------------------===//
+
+#include "clang/Format/Format.h"
+
+extern "C" void TestOneInput(uint8_t *data, size_t size) {
+  // FIXME: fuzz more things: different styles, different style features.
+  std::string s((const char *)data, size);
+  auto Style = getGoogleStyle(clang::format::FormatStyle::LK_Cpp);
+  Style.ColumnLimit = 60;
+  applyAllReplacements(s, clang::format::reformat(
+                              Style, s, {clang::tooling::Range(0, s.size())}));
+}

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
Index: tools/clang-format/CMakeLists.txt
===================================================================
--- tools/clang-format/CMakeLists.txt
+++ tools/clang-format/CMakeLists.txt
@@ -11,6 +11,8 @@
   clangToolingCore
   )
 
+add_subdirectory(fuzzer)
+
 install(TARGETS clang-format RUNTIME DESTINATION bin)
 install(PROGRAMS clang-format-bbedit.applescript DESTINATION share/clang)
 install(PROGRAMS clang-format-diff.py DESTINATION share/clang)
Index: tools/clang-format/fuzzer/CMakeLists.txt
===================================================================
--- /dev/null
+++ tools/clang-format/fuzzer/CMakeLists.txt
@@ -0,0 +1,14 @@
+set(LLVM_LINK_COMPONENTS support)
+
+add_clang_executable(clang-format-fuzzer
+  EXCLUDE_FROM_ALL
+  ClangFormatFuzzer.cpp
+  )
+
+target_link_libraries(clang-format-fuzzer
+  clangBasic
+  clangFormat
+  clangRewrite
+  clangToolingCore
+  LLVMFuzzer
+  )
Index: tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
===================================================================
--- /dev/null
+++ tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
@@ -0,0 +1,25 @@
+//===-- clang-format/ClangFormatFuzzer.cpp - Fuzz the Clang format tool ---===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// \brief This file implements a function that runs Clang format on a single
+///  input. This function is then linked into the Fuzzer library.
+///
+//===----------------------------------------------------------------------===//
+
+#include "clang/Format/Format.h"
+
+extern "C" void TestOneInput(uint8_t *data, size_t size) {
+  // FIXME: fuzz more things: different styles, different style features.
+  std::string s((const char *)data, size);
+  auto Style = getGoogleStyle(clang::format::FormatStyle::LK_Cpp);
+  Style.ColumnLimit = 60;
+  applyAllReplacements(s, clang::format::reformat(
+                              Style, s, {clang::tooling::Range(0, s.size())}));
+}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to