@@ -35,6 +35,22 @@ var aesCases = []struct {
3535 {"pingcap" , "123" , "996E0CA8688D7AD20819B90B273E01C6" },
3636}
3737
38+ type md5Test struct {
39+ out interface {}
40+ in interface {}
41+ }
42+
43+ var md5Cases = []md5Test {
44+ {"d41d8cd98f00b204e9800998ecf8427e" , "" },
45+ {"0cc175b9c0f1b6a831c399e269772661" , "a" },
46+ {"187ef4436122d1cc2f40dc2b92f0eba0" , "ab" },
47+ {"900150983cd24fb0d6963f7d28e17f72" , "abc" },
48+ {"202cb962ac59075b964b07152d234b70" , 123 },
49+ {"202cb962ac59075b964b07152d234b70" , "123" },
50+ {"46ddc40585caa8abc07c460b3485781e" , 123.123 },
51+ {nil , nil },
52+ }
53+
3854func (s * testEvaluatorSuite ) TestAESEncrypt (c * C ) {
3955 defer testleak .AfterTest (c )()
4056 fc := funcs [ast .AesEncrypt ]
@@ -88,3 +104,17 @@ func fromHex(str string) (d types.Datum) {
88104 d .SetBytes (h )
89105 return d
90106}
107+
108+ func (s * testEvaluatorSuite ) TestMD5 (c * C ) {
109+ defer testleak .AfterTest (c )()
110+ fc := funcs [ast .MD5 ]
111+ for _ , test := range md5Cases {
112+ arg := types .NewDatum (test .in )
113+ f , err := fc .getFunction (datumsToConstants ([]types.Datum {arg }), s .ctx )
114+ c .Assert (err , IsNil )
115+ out , err := f .eval (nil )
116+ c .Assert (err , IsNil )
117+ c .Assert (out , DeepEquals , types .NewDatum (test .out ))
118+ }
119+ s .testNullInput (c , ast .AesDecrypt )
120+ }
0 commit comments