diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-10-26 15:20:00 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-10-28 14:33:13 +0200 |
commit | c5f5f427c6f8d1b4136bf41171f8f0980561080e (patch) | |
tree | 3ee5625e251a64d270c1ef7f761a3725b1e84a44 /test/functional/api/compatibility_spec.lua | |
parent | f25797f86976cbccf697d6df953154c5e59656e6 (diff) | |
download | rneovim-c5f5f427c6f8d1b4136bf41171f8f0980561080e.tar.gz rneovim-c5f5f427c6f8d1b4136bf41171f8f0980561080e.tar.bz2 rneovim-c5f5f427c6f8d1b4136bf41171f8f0980561080e.zip |
api: api_info()['version']
API level is disconnected from NVIM version. The API metadata holds the
current API level, and the lowest backwards-compatible level supported
by this instance.
Release 0.1.6 is the first release that reports the Nvim version and API
level.
metadata['version'] = {
major: 0,
minor: 1,
patch: 6,
api_level: 1,
api_compatible: 0,
api_prerelease: false,
}
The API level may remain unchanged across Nvim releases if the API has
not changed.
When changing the API,
- set NVIM_API_PRERELEASE to true
- increment NVIM_API_LEVEL (at most once per Nvim version)
- adjust NVIM_API_LEVEL_COMPAT if backwards-compatibility was broken
api_level_0.mpack was generated from Nvim 0.1.5 with:
nvim --api-info
Diffstat (limited to 'test/functional/api/compatibility_spec.lua')
-rw-r--r-- | test/functional/api/compatibility_spec.lua | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/test/functional/api/compatibility_spec.lua b/test/functional/api/compatibility_spec.lua deleted file mode 100644 index e0fc625b46..0000000000 --- a/test/functional/api/compatibility_spec.lua +++ /dev/null @@ -1,65 +0,0 @@ - -local helpers = require('test.functional.helpers')(after_each) -local lfs = require('lfs') -local mpack = require('mpack') -local clear, eq, neq = helpers.clear, helpers.eq, helpers.neq - -local read_mpack_file = function(fname) - local fd = io.open(fname, 'rb') - local data = fd:read('*a') - fd:close() - local unpack = mpack.Unpacker() - return unpack(data) -end - --- ignore metadata in API function spec -local remove_function_metadata = function(fspec) - fspec['can_fail'] = nil - fspec['async'] = nil - fspec['method'] = nil - fspec['since'] = nil - fspec['deprecated_since'] = nil - fspec['receives_channel_id'] = nil - for idx,_ in ipairs(fspec['parameters']) do - fspec['parameters'][idx][2] = '' - end -end - -clear() -local api_level = helpers.call('api_info')['api_level'] - -describe('api compatibility', function() - before_each(clear) - - it("version metadata is sane", function() - local info = helpers.call('api_info') - local current = info['api_level']['current'] - local compatibility = info['api_level']['compatibility'] - neq(current, nil) - neq(compatibility, nil) - assert(current >= compatibility) - end) - - for ver = api_level['compatibility'], api_level['current'] do - local path = 'test/functional/fixtures/api-info/' .. tostring(ver) .. '.mpack' - it('are backwards compatible with api level '..ver, function() - if lfs.attributes(path,"mode") ~= "file" then - pending("No fixture found, skipping test") - return - end - - local old_api = read_mpack_file(path) - local api = helpers.call('api_info') - - for _, fspec in ipairs(old_api['functions']) do - remove_function_metadata(fspec) - for _, fspec_new in ipairs(api['functions']) do - if fspec['name'] == fspec_new['name'] then - remove_function_metadata(fspec_new) - eq(fspec, fspec_new) - end - end - end - end) - end -end) |