Sure! Below is a test case generator for the given problem statement "Rng is going to a festival":

```python
import random
import string

def tcgen():
    # The minimum length of the string is 9 and the maximum is 50.
    min_length_of_festival = 8  # Length of the word "FESTIVAL"
    min_length = 9
    max_length = 50
    
    # Generate the length of the random part of the string
    random_part_length = random.randint(min_length - min_length_of_festival, max_length - min_length_of_festival)
    
    # Generate the random part of the string consisting of uppercase English letters
    random_part = ''.join(random.choices(string.ascii_uppercase, k=random_part_length))
    
    # Append "FESTIVAL" to the random part
    S = random_part + "FESTIVAL"
    
    return S

# Example usage:
for _ in range(5):  # Generate 5 test cases
    print(tcgen())
```

This generator will create random strings that conform to the constraints given in the problem statement. Each generated string will end with "FESTIVAL" and will have a total length between 9 and 50 characters. The part of the string before "FESTIVAL" will be randomly composed of uppercase English letters. 

You can adjust the number of test cases generated by changing the range in the example usage.