| 2948 | } |
| 2949 | |
| 2950 | func TestParsePanic(t *testing.T) { |
| 2951 | // Replicates #1801. |
| 2952 | defer func() { |
| 2953 | if r := recover(); r != nil { |
| 2954 | t.Fatal(r) |
| 2955 | } |
| 2956 | }() |
| 2957 | s := "SELECT(F(F(F(F(F(F(F" + |
| 2958 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2959 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2960 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2961 | "(F(F(F(F(F(F(F(F(F(T" + |
| 2962 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2963 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2964 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2965 | "(F(F(F(F(F(F(F(F(F(F" + |
| 2966 | "(F(F(F(F(F(F(F(F(F((" + |
| 2967 | "F(0" |
| 2968 | _, err := parser.Parse(s) |
| 2969 | expected := `at or near "EOF": syntax error` |
| 2970 | if !testutils.IsError(err, expected) { |
| 2971 | t.Fatalf("expected %s, but found %v", expected, err) |
| 2972 | } |
| 2973 | } |
| 2974 | |
| 2975 | func TestParsePrecedence(t *testing.T) { |
| 2976 | // Precedence levels (highest first): |