@@ -4,6 +4,7 @@ package schtasks
44
55import (
66 "bytes"
7+ "math"
78 "os/exec"
89 "regexp"
910 "strconv"
@@ -22,7 +23,7 @@ import (
2223func TestConversionWeekdaysToBitmap (t * testing.T ) {
2324 testData := []struct {
2425 weekdays []int
25- bitmap int
26+ bitmap uint16
2627 }{
2728 {nil , 0 },
2829 {[]int {}, 0 },
@@ -40,6 +41,48 @@ func TestConversionWeekdaysToBitmap(t *testing.T) {
4041 }
4142}
4243
44+ func TestConversionMonthsToBitmap (t * testing.T ) {
45+ testData := []struct {
46+ months []int
47+ bitmap uint16
48+ }{
49+ {nil , 0 },
50+ {[]int {}, 4095 }, // every month
51+ {[]int {0 }, 0 },
52+ {[]int {1 }, 1 },
53+ {[]int {2 }, 2 },
54+ {[]int {7 }, 64 },
55+ {[]int {1 , 2 , 3 , 4 , 5 , 6 , 7 }, 127 },
56+ {[]int {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }, 127 },
57+ {[]int {1 , 2 , 3 , 4 , 5 , 6 }, 63 },
58+ }
59+
60+ for _ , testItem := range testData {
61+ assert .Equal (t , testItem .bitmap , convertMonthsToBitmap (testItem .months ))
62+ }
63+ }
64+
65+ func TestConversionDaysToBitmap (t * testing.T ) {
66+ testData := []struct {
67+ days []int
68+ bitmap uint32
69+ }{
70+ {nil , 0 },
71+ {[]int {}, math .MaxInt32 }, // every day
72+ {[]int {0 }, 0 },
73+ {[]int {1 }, 1 },
74+ {[]int {2 }, 2 },
75+ {[]int {7 }, 64 },
76+ {[]int {1 , 2 , 3 , 4 , 5 , 6 , 7 }, 127 },
77+ {[]int {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }, 127 },
78+ {[]int {1 , 2 , 3 , 4 , 5 , 6 }, 63 },
79+ }
80+
81+ for _ , testItem := range testData {
82+ assert .Equal (t , testItem .bitmap , convertDaysToBitmap (testItem .days ))
83+ }
84+ }
85+
4386func TestCompileDifferences (t * testing.T ) {
4487 testData := []struct {
4588 input string
@@ -111,7 +154,7 @@ func TestTaskSchedulerConversion(t *testing.T) {
111154 // 3rd task will be a weekly recurring
112155 weeklyEvent , ok := task .Triggers [2 ].(taskmaster.WeeklyTrigger )
113156 require .True (t , ok )
114- assert .Equal (t , getWeekdayBit (int (time .Saturday ))+ getWeekdayBit (int (time .Sunday )), int (weeklyEvent .DaysOfWeek ))
157+ assert .Equal (t , getWeekdayBit (int (time .Saturday ))+ getWeekdayBit (int (time .Sunday )), uint16 (weeklyEvent .DaysOfWeek ))
115158
116159 // 4th task will be a monthly recurring
117160 monthlyEvent , ok := task .Triggers [3 ].(taskmaster.MonthlyTrigger )
0 commit comments