Nov 02
The simplest way to test syntax is to use the administration console via telnet on a Dev/QA Varnish machine. Your current running Varnish should allow your IP/localhost to connect if you have implemented a Varnish ACL.
- Start up Varnish with single command-line
- Login to console via telnet
- Load the config you wish to test
- Use the config.
On OSX:
sudo /usr/local/sbin/varnishd -F -a localhost:3000 -b localhost:6081 -T localhost:6082
From another console/shell/ open connection to Varnish management console:
telnet localhost 6082 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
Load config and try to use (the config used in this example has a syntax problem. Therefore, you will see compilation errors:
vcl.load error /Users/hbeaver/code/varnish_demo/config/syntax_error.vcl 106 181 Message from VCC-compiler: Expected one of 'acl', 'sub', 'backend', or 'director' Found: '}' at (input Line 12 Pos 1) } # Running VCC-compiler failed, exit 1VCL compilation failed
Conversely, if the VCL has good syntax you should see no errors:
vcl.load good_config /Users/hbeaver/code/varnish_demo/config/default.vcl 200 13 VCL compiled.

May 3rd, 2010 at 6:14 am
I think it’s more easy to use varnishd -C -f /path/to/foo.vcl
May 3rd, 2010 at 1:06 pm
At the time I was writing that I was using Varnish 2.0.2 and 2.0.4. And apparently -C was an undocumented function. http://varnish-cache.org/ticket/559 But I stand corrected. Thanks!