pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

compiler-rt-netbsd: add TODO.fuzzer



Module Name:	pkgsrc-wip
Committed By:	Yang Zheng <tomsun.0.7%gmail.com@localhost>
Pushed By:	tomsun.0.7
Date:		Wed May 2 17:23:56 2018 +0000
Changeset:	dd543464c140e63bb6e8bd797e33a6a115447598

Added Files:
	compiler-rt-netbsd/TODO.fuzzer

Log Message:
compiler-rt-netbsd: add TODO.fuzzer

TODO.fuzzer is a TODO file for libFuzzer integration.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=dd543464c140e63bb6e8bd797e33a6a115447598

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 compiler-rt-netbsd/TODO.fuzzer | 102 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)

diffs:
diff --git a/compiler-rt-netbsd/TODO.fuzzer b/compiler-rt-netbsd/TODO.fuzzer
new file mode 100644
index 0000000000..f57066c719
--- /dev/null
+++ b/compiler-rt-netbsd/TODO.fuzzer
@@ -0,0 +1,102 @@
+compiler-rt profile v.s. -pg
+I. compiler-rt profile
+  Similar to GCC gcov tool, LLVM can provide llvm-cov to interpret profiling data for each line of code.
+  One can add "--coverage" or "-fcoverage-mapping" flags to generate necessary information for this tool.
+  This is pure software method, which means the information is generated from AST or something else.
+II. -pg
+  This flag is usually used to collect information for gprof. The unit is function instead of source line.
+Summary:
+  The basic units of profiling are different. llvm-cov/gcov is line-based, while gprof is function-based.
+Do we need llvm-cov for libFuzzer?
+  I don't think so. It seems there is no relationship between these two. However, there is something named
+  "SanitizerCoverage"(https://clang.llvm.org/docs/SanitizerCoverage.html) utilizing sanitizer to help with
+  profiling. But I still think they are necessary for libFuzzer itself.
+
+
+
+
+libFuzzer Failed cases (make check-fuzzer):
+I. "pthread_tsd" Category
+  All of these cases can be reproduced by commands like:
+      % clang -fsanitize=address,fuzzer -special_flags source_file
+      % ./a.out
+  If there are multiple source files, they should be compiled and run separately. The results will be like:
+      INFO: Seed: 2796805091
+      INFO: Loaded 1 modules   (10 inline 8-bit counters): 10 [0x763b70, 0x763b7a),
+      INFO: Loaded 1 PC tables (10 PCs): 10 [0x543a70,0x543b10),
+      assertion "pthread__tsd_destructors[key] != NULL" failed: file "/usr/src/lib/libpthread/pthread_tsd.c", line 176, function "pthread__add_specific"
+      [1]   Abort trap              ./a.out
+
+  ID. case_name, source_file, special_flags_if_exist".
+  1. bad-strcmp.test, BadStrcmpTest.cpp
+  2. cleanse.test, CleanseTest.cpp
+  3. disable-leaks.test, AccumulateAllocationsTest.cpp
+  4. exit-report.test, SimpleTest.cpp
+  5. fuzzer-custommutator.test, CustomMutatorTest.cpp, -Icompiler-rt-source/lib/fuzzer
+  6. fuzzer-customcrossoverandmutate.test, CustomCrossOverAndMutateTest.cpp, -Icompiler-rt-source/lib/fuzzer
+  7. equivalence.test, EquivalenceATest.cpp
+  8. cxxstring.test, CxxStringEqTest.cpp
+  9. caller-callee.test, CallerCalleeTest.cpp
+  10. fuzzer-dirs.test, SimpleTest.cpp
+  11. fuzzer-dict.test, SimpleDictionaryTest.cpp
+  12. exit_on_src_pos.test, SimpleTest.cpp
+  13. fuzzer-fdmask.test, SpamyTest.cpp
+  14. fuzzer-customcrossover.test, CustomCrossOverTest.cpp
+  15. fuzzer-finalstats.test, SimpleTest.cpp
+  16. max-number-of-runs.test, AccumulateAllocationsTest.cpp
+  17. memcmp64.test, Memcmp64BytesTest.cpp
+  18. fuzzer-flags.test, FlagsTest.cpp
+  19. fuzzer-runs.test, NthRunCrashTest.cpp
+  20. fuzzer-seed.test, NullDerefTest.cpp
+  21. fuzzer-segv.test, NullDerefTest.cpp
+  22. memcmp.test, MemcmpTest.cpp
+  23. fuzzer-timeout.test, TimeoutTest.cpp
+  24. fuzzer-printcovpcs.test, SimpleTest.cpp
+  25. fuzzer-ubsan.test, SignedIntOverflowTest.cpp
+  26. inline-8bit-counters.test, SimpleTest.cpp
+  27. fuzzer-leak.test, LeakTest.cpp:ThreadedLeakTest.cpp:LeakTimeoutTest.cpp
+  28. recommended-dictionary.test, RepeatedMemcmp.cpp
+  29. fuzzer-threaded.test, ThreadedTest.cpp
+  30. merge-control-file.test, FullCoverageSetTest.cpp
+  31. merge-posix.test, FullCoverageSetTest.cpp
+  32. merge-summary.test, FullCoverageSetTest.cpp
+  33. merge.test, FullCoverageSetTest.cpp
+  34. shrink.test, ShrinkControlFlowTest.cpp:ShrinkValueProfileTest.cpp
+  35. reduce_inputs.test, ShrinkControlFlowSimpleTest.cpp:ShrinkControlFlowTest.cpp
+  36. minimize_two_crashes.test, TwoDifferentBugsTest.cpp
+  37. overwrite-input.test, OverwriteInputTest.cpp
+  38. fuzzer-singleinputs.test, NullDerefTest.cpp:SimpleTest.cpp
+  39. print-func.test, PrintFuncTest.cpp
+  40. minimize_crash.test, NullDerefTest.cpp:SingleByteInputTest.cpp
+  41. simple-cmp.test, SimpleCmpTest.cpp
+  42. strcmp.test, StrcmpTest.cpp
+  43. merge-sigusr.test, SleepOneSecondTest.cpp
+  44. strncmp.test, StrncmpTest.test
+  45. swap-cmp.test, SwapCmpTest.cpp
+  46. repeated-bytes.test, RepeatedBytesTest.cpp
+  47. fuzzer-oom.test, OutOfMemoryTest.cpp:OutOfMemorySingleLargeMalloc.cpp:AccumulateAllocationsTest.cpp
+  48. value-profile-cmp3.test, AbsNegAndConstantTest.cpp
+  49. value-profile-cmp4.test, AbsNegAndConstant64Test.cpp
+  50. value-profile-cmp.test, SimpleCmpTest.cpp
+  51. value-profile-mem.test, SingleMemcmpTest.cpp
+  52. strstr.test, StrstrTest.cpp
+  53. sigusr.test, SleepOneSecondTest.cpp
+  54. value-profile-strcmp.test, SingleStrcmpTest.cpp
+  55. value-profile-strncmp.test, SingleStrncmpTest.cpp
+  56. trace-malloc-2.test, TraceMallocTest.cpp
+  57. trace-malloc-unbalanced.test, TraceMallocTest.cpp
+  58. value-profile-switch.test, SwitchTest.cpp:Switch2Test.cpp
+  59. trace-pc.test, SimpleTest.cpp
+  60. trace-malloc.test, TraceMallocTest.cpp
+  61. ulimit.test, SimpleTest.cpp
+  62. value-profile-div.test, DivTest.cpp
+  63. value-profile-load.test, LoadTest.cpp
+  64. trace-malloc-threaded.test, TraceMallocThreadedTest.cpp
+  65. value-profile-set.test, FourIndependentBranchesTest.cpp
+  66. equivalence-signals.test, EquivalenceATest.cpp
+  67. dump_coverage.test, NullDerefTest.cpp
+  68. coverage.test, NUllDerefTest.cpp
+  69. fuzzer.test, FullCoverageSetTest.cpp
+II. Complex One
+  70. afl-driver-extra-stats.test
+    Not sure yet.


Home | Main Index | Thread Index | Old Index