Adding test to check that languages.yml includes all extensions represented in samples folder

This commit is contained in:
Arfon Smith
2014-08-11 14:16:25 -07:00
parent 41c880afc7
commit 43923976c2
4 changed files with 30636 additions and 30457 deletions

View File

@@ -532,6 +532,7 @@ module Linguist
if extnames = extensions[name] if extnames = extensions[name]
extnames.each do |extname| extnames.each do |extname|
if !options['extensions'].include?(extname) if !options['extensions'].include?(extname)
warn "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" unless extname == '.script!'
options['extensions'] << extname options['extensions'] << extname
end end
end end

View File

@@ -260,6 +260,7 @@ C:
extensions: extensions:
- .c - .c
- .cats - .cats
- .h
- .w - .w
C#: C#:
@@ -288,6 +289,7 @@ C++:
- .cc - .cc
- .cxx - .cxx
- .H - .H
- .h
- .h++ - .h++
- .hh - .hh
- .hpp - .hpp
@@ -444,6 +446,7 @@ Coq:
type: programming type: programming
extensions: extensions:
- .coq - .coq
- .v
Cpp-ObjDump: Cpp-ObjDump:
type: data type: data
@@ -539,6 +542,7 @@ Dart:
Diff: Diff:
extensions: extensions:
- .diff - .diff
- .patch
Dogescript: Dogescript:
type: programming type: programming
@@ -623,6 +627,7 @@ Erlang:
color: "#0faf8d" color: "#0faf8d"
extensions: extensions:
- .erl - .erl
- .escript
- .hrl - .hrl
F#: F#:
@@ -698,6 +703,7 @@ Forth:
extensions: extensions:
- .fth - .fth
- .4th - .4th
- .forth
Frege: Frege:
type: programming type: programming
@@ -806,6 +812,9 @@ Gosu:
color: "#82937f" color: "#82937f"
extensions: extensions:
- .gs - .gs
- .gst
- .gsx
- .vark
Grace: Grace:
type: programming type: programming
@@ -841,6 +850,7 @@ Groovy:
color: "#e69f56" color: "#e69f56"
extensions: extensions:
- .groovy - .groovy
- .gradle
- .grt - .grt
- .gtpl - .gtpl
- .gvy - .gvy
@@ -945,6 +955,7 @@ IDL:
color: "#e3592c" color: "#e3592c"
extensions: extensions:
- .pro - .pro
- .dlm
INI: INI:
type: data type: data
@@ -1019,6 +1030,7 @@ JSON:
searchable: false searchable: false
extensions: extensions:
- .json - .json
- .lock
- .sublime-keymap - .sublime-keymap
- .sublime-mousemap - .sublime-mousemap
- .sublime-project - .sublime-project
@@ -1147,6 +1159,9 @@ Lasso:
color: "#2584c3" color: "#2584c3"
extensions: extensions:
- .lasso - .lasso
- .las
- .lasso9
- .ldml
Latte: Latte:
type: markup type: markup
@@ -1232,6 +1247,7 @@ Lua:
extensions: extensions:
- .lua - .lua
- .nse - .nse
- .pd_lua
- .rbxs - .rbxs
interpreters: interpreters:
- lua - lua
@@ -1377,6 +1393,7 @@ Myghty:
NSIS: NSIS:
extensions: extensions:
- .nsi - .nsi
- .nsh
Nemerle: Nemerle:
type: programming type: programming
@@ -1441,6 +1458,7 @@ OCaml:
color: "#3be133" color: "#3be133"
extensions: extensions:
- .ml - .ml
- .eliom
- .eliomi - .eliomi
- .ml4 - .ml4
- .mli - .mli
@@ -1461,6 +1479,7 @@ Objective-C:
- objc - objc
extensions: extensions:
- .m - .m
- .h
Objective-C++: Objective-C++:
type: programming type: programming
@@ -1508,6 +1527,7 @@ OpenEdge ABL:
- abl - abl
extensions: extensions:
- .p - .p
- .cls
Org: Org:
type: prose type: prose
@@ -1546,6 +1566,7 @@ PHP:
- .php - .php
- .aw - .aw
- .ctp - .ctp
- .module
- .php3 - .php3
- .php4 - .php4
- .php5 - .php5
@@ -1594,6 +1615,7 @@ Pascal:
extensions: extensions:
- .pas - .pas
- .dfm - .dfm
- .dpr
- .lpr - .lpr
Perl: Perl:
@@ -1603,12 +1625,14 @@ Perl:
extensions: extensions:
- .pl - .pl
- .PL - .PL
- .fcgi
- .perl - .perl
- .ph - .ph
- .plx - .plx
- .pm - .pm
- .pod - .pod
- .psgi - .psgi
- .t
interpreters: interpreters:
- perl - perl
@@ -1817,6 +1841,7 @@ Racket:
- .rkt - .rkt
- .rktd - .rktd
- .rktl - .rktl
- .scrbl
Ragel in Ruby Host: Ragel in Ruby Host:
type: programming type: programming
@@ -1886,7 +1911,10 @@ Ruby:
- .god - .god
- .irbrc - .irbrc
- .mspec - .mspec
- .pluginspec
- .podspec - .podspec
- .rabl
- .rake
- .rbuild - .rbuild
- .rbw - .rbw
- .rbx - .rbx
@@ -1960,6 +1988,7 @@ Sass:
group: CSS group: CSS
extensions: extensions:
- .sass - .sass
- .scss
Scala: Scala:
type: programming type: programming
@@ -1967,6 +1996,7 @@ Scala:
color: "#7dd3b0" color: "#7dd3b0"
extensions: extensions:
- .scala - .scala
- .sbt
- .sc - .sc
Scaml: Scaml:
@@ -1982,6 +2012,7 @@ Scheme:
- .scm - .scm
- .sld - .sld
- .sls - .sls
- .sps
- .ss - .ss
interpreters: interpreters:
- guile - guile
@@ -1993,6 +2024,8 @@ Scilab:
type: programming type: programming
extensions: extensions:
- .sci - .sci
- .sce
- .tst
Self: Self:
type: programming type: programming
@@ -2012,8 +2045,10 @@ Shell:
- zsh - zsh
extensions: extensions:
- .sh - .sh
- .bash
- .bats - .bats
- .tmux - .tmux
- .zsh
interpreters: interpreters:
- bash - bash
- sh - sh
@@ -2080,6 +2115,7 @@ Standard ML:
extensions: extensions:
- .ML - .ML
- .fun - .fun
- .sig
- .sml - .sml
Stata: Stata:
@@ -2280,6 +2316,7 @@ Visual Basic:
extensions: extensions:
- .vb - .vb
- .bas - .bas
- .cls
- .frm - .frm
- .frx - .frx
- .vba - .vba
@@ -2308,6 +2345,7 @@ XML:
- wsdl - wsdl
extensions: extensions:
- .xml - .xml
- .ant
- .axml - .axml
- .ccxml - .ccxml
- .clixml - .clixml
@@ -2321,6 +2359,7 @@ XML:
- .fsproj - .fsproj
- .glade - .glade
- .grxml - .grxml
- .ivy
- .jelly - .jelly
- .kml - .kml
- .launch - .launch

File diff suppressed because it is too large Load Diff

View File

@@ -36,6 +36,24 @@ class TestSamples < Test::Unit::TestCase
assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } } assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } }
end end
# Check that there aren't samples with extensions that aren't explicitly defined in languages.yml
def test_parity
extensions = Samples::DATA['extnames']
languages_yml = File.expand_path("../../lib/linguist/languages.yml", __FILE__)
languages = YAML.load_file(languages_yml)
languages.each do |name, options|
options['extensions'] ||= []
if extnames = extensions[name]
extnames.each do |extname|
next if extname == '.script!'
assert options['extensions'].include?(extname), "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml"
end
end
end
end
# If a language extension isn't globally unique then make sure there are samples # If a language extension isn't globally unique then make sure there are samples
def test_presence def test_presence
Linguist::Language.all.each do |language| Linguist::Language.all.each do |language|