File: generate_fingerprint_tests.rb

package info (click to toggle)
libpg-query 17-6.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,440 kB
  • sloc: ansic: 175,872; sql: 79,564; ruby: 1,605; makefile: 281; cpp: 221
file content (37 lines) | stat: -rwxr-xr-x 761 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env ruby

require 'bundler'
require 'json'

class Generator
  def initialize
    @fingerprint_tests = JSON.parse(File.read('./testdata/fingerprint.json'))
  end

  def generate!
    test_lines = []

    @fingerprint_tests.each do |test_def|
      if test_def['disableOnMsvc']
        test_lines << '#ifndef _MSC_VER'
      end

      test_lines << format('  %s,', test_def['input'].inspect)
      test_lines << format('  %s,', test_def['expectedHash'].inspect)

      if test_def['disableOnMsvc']
        test_lines << '#endif'
      end
    end

    File.write './test/fingerprint_tests.c', <<-EOF
const char* tests[] = {
#{test_lines.join("\n")}
};

const size_t testsLength = sizeof(tests)/sizeof(*tests)/2;
EOF
  end
end

Generator.new.generate!