FuzzScheduleParser performs fuzz testing on the schedule parser to discover edge cases and potential security vulnerabilities in schedule input handling. The fuzzer validates that: 1. Valid schedule expressions are correctly parsed 2. Invalid schedules are properly rejected with errors 3. Parser ha
(f *testing.F)
| 19 | // 6. UTC offset parsing is robust |
| 20 | // 7. Minimum duration validation works correctly |
| 21 | func FuzzScheduleParser(f *testing.F) { |
| 22 | // Seed corpus with valid schedule expressions |
| 23 | |
| 24 | // Daily schedules |
| 25 | f.Add("daily") |
| 26 | f.Add("daily at 02:00") |
| 27 | f.Add("daily at midnight") |
| 28 | f.Add("daily at noon") |
| 29 | f.Add("daily at 09:30") |
| 30 | |
| 31 | // Daily schedules with weekday restriction |
| 32 | f.Add("daily on weekdays") |
| 33 | f.Add("daily around 9am on weekdays") |
| 34 | f.Add("daily around 14:00 on weekdays") |
| 35 | f.Add("daily between 9:00 and 17:00 on weekdays") |
| 36 | f.Add("daily between 9am and 5pm on weekdays") |
| 37 | |
| 38 | // Daily around schedules (fuzzy with target time) |
| 39 | f.Add("daily around 14:00") |
| 40 | f.Add("daily around 02:00") |
| 41 | f.Add("daily around midnight") |
| 42 | f.Add("daily around noon") |
| 43 | f.Add("daily around 09:30") |
| 44 | f.Add("daily around 23:30") |
| 45 | f.Add("daily around 3pm") |
| 46 | f.Add("daily around 9am") |
| 47 | f.Add("daily around 12am") |
| 48 | f.Add("daily around 12pm") |
| 49 | f.Add("daily around 11pm") |
| 50 | f.Add("daily around 6am") |
| 51 | f.Add("daily around 14:00 utc+9") |
| 52 | f.Add("daily around 3pm utc-5") |
| 53 | f.Add("daily around 9am utc+05:30") |
| 54 | f.Add("daily around midnight utc-8") |
| 55 | f.Add("daily around noon utc+2") |
| 56 | f.Add("daily around 2pm utc+1") |
| 57 | f.Add("daily around 11pm utc-3") |
| 58 | f.Add("daily around 8 am PT") |
| 59 | f.Add("daily around 8 am PST") |
| 60 | f.Add("daily around 8 am PDT") |
| 61 | |
| 62 | // Daily between schedules (fuzzy with time range) |
| 63 | f.Add("daily between 9:00 and 17:00") |
| 64 | f.Add("daily between 9am and 5pm") |
| 65 | f.Add("daily between midnight and noon") |
| 66 | f.Add("daily between noon and midnight") |
| 67 | f.Add("daily between 22:00 and 02:00") |
| 68 | f.Add("daily between 10pm and 2am") |
| 69 | f.Add("daily between 8:30 and 18:45") |
| 70 | f.Add("daily between 6am and 6pm") |
| 71 | f.Add("daily between 1am and 11pm") |
| 72 | f.Add("daily between 00:00 and 23:59") |
| 73 | f.Add("daily between 12am and 11:59pm") |
| 74 | f.Add("daily between 23:00 and 01:00") |
| 75 | f.Add("daily between 11pm and 1am") |
| 76 | f.Add("daily between 7:15 and 16:45") |
| 77 | f.Add("daily between 3:30am and 8:30pm") |
| 78 | f.Add("daily between 9am utc-5 and 5pm utc-5") |
nothing calls this directly
no test coverage detected