cue-lang / cue

The home of the CUE language! Validate and define text-based and dynamic configuration
https://cuelang.org
Apache License 2.0
5.14k stars 294 forks source link

Encoding generator test fails with Go 1.21 #2548

Closed folliehiyuki closed 1 year ago

folliehiyuki commented 1 year ago

Running go test on the latest commit with Go 1.21 fails with:

...
--- FAIL: TestGenerate (3.00s)
    --- FAIL: TestGenerate/pkg1 (1.78s)
        generator_test.go:79: files differ (-want +got):
              strings.Join({
                ... // 1980 identical bytes
                "l {\n\t\tw, err := cuegenCodec.ExtractType(x)\n\t\tif err != nil {\n\t\t\t",
                "panic(err)\n\t\t}\n\t\tv = v.Unify(w)\n\t}\n\treturn v\n}\n\n// Data size: 60",
            -   "1",
            +   "0",
                " bytes.\nvar cuegenInstanceData = []byte(\"\\x01\\x1f\\x8b\\b\\x00\\x00\\",
                `x00\x00\x00\x00\xff\x94R\xdfo\xd3:\x18\xb5\xd3^\xe9\xd6\u06bd\x1`,
                `2\x7f\x00\u0487\x9fZ4\xd2\x1f\x12`,
            -   "B\\x8a\\x16`\\x1b\\x03\\xedaka\\x80\\x10\\x88\\a/\\xf9\\x9aZs\\xed\\x908c\\x15",
            -   `l\x120\xc6\xfe\xea\x059M\xb6\xc2\xdb\xf2\x92\xa3/9\xdf9>>\xff\x9`,
            -   `5\xbf<\ua557\x84\x96\xdf\tyT~kQ\xba&un\x85\x8e\xf0\x99\xb0\xc2\x`,
            -   `cdi\x8b\xb6_\x19c\xa9Gh{\"\uc32e\x11\xfa\xcfs\xa90\xa7\xe5\x05!\`,
            -   `xe4n\xf9\u04e3\xf4\xff\x0f\x1f\xa3\x02\xfd\xa9T5\xf3\x82\xd0\xf2`,
            -   `\x9c\x90n\xf9\xa3E\xe9\xbf7\xf3sB=\xda\xde\x17st\x8b\xda\u0550\x`,
            -   `11B\xaeZ/\xcbK\xe2QJ\u05e3\x02\x95\u0409o\xb2\xa4\x9f\x98>\xea\x`,
            -   `c8\xc4R;\x1c\x99\x18\xfb\x16s\x1b\v+\xfa\xe9Q2\xa4\x94\xdeq\xef~`,
            -   `\xe3\u06cf\n\xa4W\xde\xfbTDG\"Ap\x1f\x19\x93\xf3\xd4d\x16\xba\xa`,
            -   `c\xc3o\xb1}\xc4Y\x87\xe76\x93:\xc9\x1d\x9c\v;\xe3\xac\xc7\xd8\xd`,
            -   `e\xe2\xc0fEd\x03\xf8\xc2:\x9b\x01\xc0F8\x1c\xb0\xceV\x00\x10\x9e`,
            -   `\xf1HX\x0e_\xe1>\x8fM\xc2Yg\xfc$\x80\xb1\x9da\xb6\xe4\xb0\xcen\x`,
            -   `00\xce\xd6\xc8\u07ed\\\xed!;\x85\xa7\x89\xe9\xaeGf\x9e*\xb4\x18n`,
            -   `\u05e0\xc7V\x88\x8dXm\xc8\xdf6\xda\n\xa9\xf3M\xbd\xe8\xf2w\xbc\x`,
            -   "c7:\\x93`\\xb9w\\\"\\xa3#\\xb7\\x95\\x1dT\\xbf\\x06P?\\xf7B\\xce\\x1b\\\\\\t\\x1e",
            -   `\v%ca1|[\x83\xed7;=v\x90b$\x85j\xc8\xe1\x19\u03d7\x13\xbed\xd9E\`,
            -   `x8a\xe1\xd2E\x8f\xed&\xdad\xf8z&\xf3J&<\xe3Sc8\x1b\u03e5\xbd\xd6`,
            -   `\x05\x90\xdaV\xdc\a=\xc6\xfa}\xd87z\xe7D\xe6V\xea\x04>K\xa5\xe0\`,
            -   `x10\xc1\u0325\xb5\x18\x83\xc8\xc1\x9d\x19A\xe6\xa0\r\xe0\xa7B\x1`,
            -   `e\v\x85\xda\xc2\v\x03N\xdag+\xf4*\x94\xad&\x94:\xc8ZEV\u05a0\xd0`,
            -   `x\xe2r\xc6\x18\n\xad0\xcf\x01OR%#i\xd5\x02P\x8bC\x85\xb1\u03e6\x`,
            -   `c6\x04\xce&\x9b\u062cI\xda\u0777\xbfW(+S\x85\xe3iw8\xe8\xb1SF\x8`,
            -   `8w\x9b\x8a\x8e\ua28e\xfe\xac\xa8X)\xe8\u8ea07mcM9\x1a3\x1b\xc3\x`,
            -   "c1`\\xe5\\xa8\\x7f\\u077f8\\x8c\\xb83\\xb7\\xbc\\xfa\\x00\\x1e?d\\x84\\xfc\\x0",
            -   `e\x00\x00\xff\xff\xdb\r\u0320\xe1`,
            +   `<D\v\xb0\x8d\x81\xf6\xb0\xb50@\b\u0103\x97|M\xad\xb9vH\x9c\xb1\n`,
            +   "6`\\x8c\\xfd\\xd9\\vr\\x9al\\x85\\xb7\\xe5%G_r\\xbes||\\xfe+\\x7fy\\xd4+/\\t-",
            +   `\xbf\x13\xf2\xe8[\x8b\xd25\xa9s+t\x84\u03c4\x15nL[\xb4\xfd\xca\x`,
            +   `18K=B\xdb\x13agt\x8d\xd0\x7f\x9eK\x859-/\b!w\u02df\x1e\xa5\xff\x`,
            +   `7f\xf8\x18\x15\xe8O\xa5\xaa\x99\x17\x84\x96\xe7\x84t\xcb\x1f-J\x`,
            +   `ff\xbd\x99\x9f\x13\xea\xd1\xf6\xbe\x98\xa3[\u052e\x86\x8c\x10r\x`,
            +   `d5zY^\x12\x8fR\xba\x1e\x15\xa8\x84N|\x93%\xfd\xc4\xf4QG&\x96\xda`,
            +   `\xe1\xc8\xc4\u0637\x98\xdbXX\xd1O\x8f\x92!\xa5\xf4\x8e{\xf7\x1b\`,
            +   `xdf~T \xbd\xf2\u07a7\":\x12\t\x82\xfb\u0218\x9c\xa7&\xb3\xd0e\x1`,
            +   `d~\x8b\xed#\xce:<\xb7\x99\xd4I\xee\xe0\\\xd8\x19g=\xc6\xf6\x16\a`,
            +   `6+\"\x1b\xc0\x17\xd6\xd9\f\x006\xc2\xe1\x80u\xb6\x02\x80\xf0\x8c`,
            +   `G\xc2r\xf8\n\xf7yl\x12\xce:\xe3'\x01\x8c\xed\f\xb3%\x87uv\x03p\x`,
            +   `b6F\xfen\xe5j\x0f\xd9)<MLw=2\xf3T\xa1\xc5p\xbb\x06=\xb6Bl\xc4jC\`,
            +   `xfe\xb6\xd1VH\x9do\xeaE\x97\xbf\xe3=\u0599\x04\u02fd\x13\x19\x1d`,
            +   `\xb9\xad\xec\xa0\xfa5\x80\xfa\xb9\x17r\xde\xe0J\xf0X(\x19\v\x8b\`,
            +   `xe1\xdb\x1al\xbf\xd9\u9c43\x14#)TC\x0e\xcfx\xbe\x9c\xf0%\xcb.R\f`,
            +   `\x97.zl7\xd1&\xc3\xd73\x99W2\xe1\x19\x9f\x1a\xc3\xd9x.\xed\xb5.\`,
            +   `x80\u0536\xe2>\xe81\xd6\xef\u00fe\xd1;'2\xb7R'\xf0Y*\x05\x87\bf.`,
            +   `\xad\xc5\x18D\x0e\xee\xcc\b2\am\x00?\x15\xf2X(\xd4\x16^\x18p\xd2`,
            +   `>[\xa1W\xa1l5\xa1\xd4A\xd6*\xb2\xb2\x06\x85\xc6\x13\x973\xc6Ph\x`,
            +   `85y\x0ex\x92*\x19I\xab\x16\x80Z\x1c*\x8c}65&p6\xd9\xc4fM\xd2\xee`,
            +   `\xbe\xfd\xbdBY\x99*\x1cO\xbb\xc3A\x8f\x9d2B\xbc\xdbTtTWt\xf4gE\x`,
            +   `c5JAG\xd7\x05\xbdi\x1bk\xca\u0458\xd9\x18\x0e\x06+G\xfd\xeb\xfe\`,
            +   `xc5a\u011d\xb9\xe5\xd5\a\xf0\xf8!#\xe4w\x00\x00\x00\xff\xfffX!\x`,
            +   `c8\xe0`,
                ... // 15 identical bytes
              }, "")
    --- FAIL: TestGenerate/pkg2 (1.22s)
        generator_test.go:79: files differ (-want +got):
              (
                """
                ... // 58 identical lines
                }

            -   // Data size: 276 bytes.
            -   var cuegenInstanceData = []byte("\x01\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xffD\x8e\xc1J\x031\x10\x86\xe7\u07ee`C\x15|\x00a\xd9S\x05\u066d\x82\bE\x84\xaa\b\x1e\x94\xe2U<\x8ci\x8c\xa1mR\x9a\xecA\u0103Z\xabO\xe3+FR*\x9ef\xf8f\xfe\x9fo+~e\xc8\xe27!\xbe\x13\x1d\u01f7\x16\xd01\xd6\a\xb6R]p\xe0\xc4\xd1B~\xeb\\@F\u0207\x1c\x9e\xd0!l\\\x9a\x89\xf2\x88K\"\u068d\x9f\x19\xb0}w/\x1bU=\x9a\xc9:\xb9$\xc4\x05Q7~\xb4\x80\xcd\x7f\xbe d\xc8ox\xaaRQ\xbe\x82\x82\x88\xe2O\x12\x01\xb0/\x1b5a\xab+7\u05f5v\xb5\xb2\u048d\x8cM\xbbt#U\a\xe5\u00c8\x03\u05f3\xb1>\x04\xb0\x93f\xfd\xa7]\xc9F\x81g,\u01ecU\x91NB\x98\xe9\xcc\xcdCQ\xfa07V\xfbR\x88\xab\x15\xb9V\xfd\xe2E\xb4\a\xfd\xe2\xe4\xa0\xd7\x13\xed\xb3~\xb1~\xa9\u039d\rl\xac\x1f\xd8\xe7n\xc9\x0f\xb2\xdc\x13\xafbh\xe48eN\x8f\x04\xd1o\x00\x00\x00\xff\xff\ue135\t=\x01\x00\x00")
            +   // Data size: 274 bytes.
            +   var cuegenInstanceData = []byte("\x01\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xffD\x8e\xc1J\x031\x10\x86\xe7\u07ee`C\x15|\x00a\xd9S\x05\u066d\x82\x1e\x8a\bU\x11<(\u016bx\x18\xd3\x18C\u06e44\u0643\x88\xa8\xb5\xfa8\xbeb$\xa5\xe2i\x86o\xe6\xff\xf9\xb6\xe2W\x86,~\x13\xe2;\xd1\xf1[\v\xe8\x18\xeb\x03[\xa9.8p\xc2h!\xbfu. #\xe4C\x0eO\xe8\x106.\xcdDy\xc4%\x11\xed\xc6\xcf\f\u063e\xbb\x97\x8d\xaa\x1e\xcdd\x9d\\\x12\u20a8\x1b?Z\xc0\xe6?_\x102\xe47<U\xa9(_AAD\xf1'y\x00\u0617\x8d\x9a\xb0\u0555\x9b\xebZ\xbbZY\xe9F\u01a6]\xba\x91\xaa\x83\xf2a\u0101\xeb\xd9X\x1f\x02\xd8I\xb3\xfe\u04eed\xa3\xc03\x96c\u05aaH'!\xcct\xe6\xe6\xa1(}\x98\x1b\xab})\xc4\u054a\\\xab~\xf1\"\u0683~qr\xd0\xeb\x89\xf6Y\xbfX\xbfT\xe7\xce\x066\xd6\x0f\xecs\xb7\xe4\aY\xee\x89W14r\x9c2\xa7G\x82\xe87\x00\x00\xff\xff\x8e\x9a[\x03<\x01\x00\x00")
                """
              )
FAIL
FAIL    cuelang.org/go/encoding/gocode  3.131s
...

I tried with Go 1.20 and 1.19, the test passed. I'm doing this on AlpineLinux edge by the way.

mvdan commented 1 year ago

Yes, we also noticed :) See https://review.gerrithub.io/c/cue-lang/cue/+/1167483, which I sent yesterday.

mvdan commented 1 year ago

Merged in 3bf3dbd655284d3628399a83a703f4849b5f9374, closing.