os.path.join will run on the master, which is probably Linux, so it will join with / instead of \.  Since this slave is Windows only we can assume \ separator, so i guess just hardcode the path concatenations to use \ instead of os.path.join<br><div class="gmail_quote"><div dir="ltr">On Tue, Feb 7, 2017 at 6:24 PM Marcos Pividori via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">mpividori updated this revision to Diff 87578.<br class="gmail_msg">
mpividori added a comment.<br class="gmail_msg">
<br class="gmail_msg">
Ok. Now it should work fine. Would you agree?<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D29677" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D29677</a><br class="gmail_msg">
<br class="gmail_msg">
Files:<br class="gmail_msg">
  zorg/buildbot/builders/SanitizerBuilderWindows.py<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Index: zorg/buildbot/builders/SanitizerBuilderWindows.py<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- zorg/buildbot/builders/SanitizerBuilderWindows.py<br class="gmail_msg">
+++ zorg/buildbot/builders/SanitizerBuilderWindows.py<br class="gmail_msg">
@@ -64,6 +64,7 @@<br class="gmail_msg">
<br class="gmail_msg">
     # Global configurations<br class="gmail_msg">
     build_dir='build'<br class="gmail_msg">
+    build_fuzzer_dir='build-fuzzer'<br class="gmail_msg">
<br class="gmail_msg">
     ############# CLEANING<br class="gmail_msg">
     cleanBuildRequested = lambda step: step.build.getProperty("clean") or clean<br class="gmail_msg">
@@ -112,4 +113,68 @@<br class="gmail_msg">
                            workdir=build_dir,<br class="gmail_msg">
                            env=Property('slave_env')))<br class="gmail_msg">
<br class="gmail_msg">
+    # Clean fuzzer build dir.<br class="gmail_msg">
+    f.addStep(RemoveDirectory(name='clean '+build_fuzzer_dir,<br class="gmail_msg">
+                dir=build_fuzzer_dir,<br class="gmail_msg">
+                haltOnFailure=False,<br class="gmail_msg">
+                flunkOnFailure=False,<br class="gmail_msg">
+                doStepIf=cleanBuildRequested<br class="gmail_msg">
+                ))<br class="gmail_msg">
+<br class="gmail_msg">
+    # Get absolute path to build dir.<br class="gmail_msg">
+    f.addStep(SetProperty(name="get_builddir",<br class="gmail_msg">
+                          command=["pwd"],<br class="gmail_msg">
+                          property="builddir",<br class="gmail_msg">
+                          description="set build dir",<br class="gmail_msg">
+                          workdir=build_dir))<br class="gmail_msg">
+<br class="gmail_msg">
+    # Get clang version.<br class="gmail_msg">
+    lib_clang_dir = os.path.join(Property("builddir"), config, "lib", "clang")<br class="gmail_msg">
+    f.addStep(SetProperty(name="get clang version",<br class="gmail_msg">
+                          command=["dir", "/b", lib_clang_dir],<br class="gmail_msg">
+                          property="clang_version",<br class="gmail_msg">
+                          description="get clang version",<br class="gmail_msg">
+                          workdir=build_dir))<br class="gmail_msg">
+<br class="gmail_msg">
+    # Get binary dir.<br class="gmail_msg">
+    bin_path = os.path.join(Property("builddir"), config, "bin")<br class="gmail_msg">
+    # Get compiler-rt's libraries dir.<br class="gmail_msg">
+    dll_path = os.path.join(lib_clang_dir, Property("clang_version"), "lib",<br class="gmail_msg">
+        "windows")<br class="gmail_msg">
+    # Get absolute path to clang-cl.<br class="gmail_msg">
+    clang_cl = os.path.join(bin_path, "clang-cl")<br class="gmail_msg">
+<br class="gmail_msg">
+    # Add fresh clang, tools and compiler-rt dlls to path.<br class="gmail_msg">
+    Property('slave_env')['Path'] = ";".join([bin_path, dll_path,<br class="gmail_msg">
+        Property('slave_env')['Path']])<br class="gmail_msg">
+<br class="gmail_msg">
+    f.addStep(ShellCommand(name='cmake',<br class="gmail_msg">
+                           command=[cmake, "-G", "Ninja", "../llvm",<br class="gmail_msg">
+                                    "-DCMAKE_BUILD_TYPE="+config,<br class="gmail_msg">
+                                    "-DLLVM_ENABLE_ASSERTIONS=ON",<br class="gmail_msg">
+                                    "-DCMAKE_C_COMPILER="+clang_cl,<br class="gmail_msg">
+                                    "-DCMAKE_CXX_COMPILER="+clang_cl,<br class="gmail_msg">
+                                    "-DLLVM_USE_SANITIZER=Address",<br class="gmail_msg">
+                                    "-DLLVM_USE_SANITIZE_COVERAGE=YES"]<br class="gmail_msg">
+                                   + extra_cmake_args,<br class="gmail_msg">
+                           haltOnFailure=True,<br class="gmail_msg">
+                           workdir=build_fuzzer_dir,<br class="gmail_msg">
+                           env=Property('slave_env')))<br class="gmail_msg">
+<br class="gmail_msg">
+    # Build libFuzzer.<br class="gmail_msg">
+    f.addStep(NinjaCommand(name='build LLVMFuzzer',<br class="gmail_msg">
+                           targets=['LLVMFuzzer'],<br class="gmail_msg">
+                           haltOnFailure=True,<br class="gmail_msg">
+                           description='ninja LLVMFuzzer',<br class="gmail_msg">
+                           workdir=build_dir,<br class="gmail_msg">
+                           env=Property('slave_env')))<br class="gmail_msg">
+<br class="gmail_msg">
+    # Run libFuzzer's tests.<br class="gmail_msg">
+    f.addStep(NinjaCommand(name='run fuzzer tests',<br class="gmail_msg">
+                           targets=['check-fuzzer'],<br class="gmail_msg">
+                           haltOnFailure=True,<br class="gmail_msg">
+                           description='ninja check-fuzzer',<br class="gmail_msg">
+                           workdir=build_fuzzer_dir,<br class="gmail_msg">
+                           env=Property('slave_env')))<br class="gmail_msg">
+<br class="gmail_msg">
     return f<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>