diff --git a/developer/src/test/auto/keyboard-package-versions/test-1.0/test-1.0.kpj b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test-1.0.kpj
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-1.0/test-1.0.kpj
rename to developer/src/kmc-package/test/fixtures/versioning/test-1.0/test-1.0.kpj
diff --git a/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.js b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.js
new file mode 100644
index 0000000000..9ee538d9ae
--- /dev/null
+++ b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.js
@@ -0,0 +1 @@
+KeymanWeb.KR(new Keyboard_test());function Keyboard_test(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_test";this.KN="Keyboard Version Test";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0;this.KVER="17.0.159.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;return r;};}
\ No newline at end of file
diff --git a/developer/src/test/auto/keyboard-package-versions/test-1.0/test.kmn b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.kmn
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-1.0/test.kmn
rename to developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.kmn
diff --git a/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.kmx b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.kmx
new file mode 100644
index 0000000000..9e4bd15d39
Binary files /dev/null and b/developer/src/kmc-package/test/fixtures/versioning/test-1.0/test.kmx differ
diff --git a/developer/src/test/auto/keyboard-package-versions/test-2.0/test-2.0.kpj b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test-2.0.kpj
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-2.0/test-2.0.kpj
rename to developer/src/kmc-package/test/fixtures/versioning/test-2.0/test-2.0.kpj
diff --git a/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.js b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.js
new file mode 100644
index 0000000000..788a3d58ff
--- /dev/null
+++ b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.js
@@ -0,0 +1 @@
+KeymanWeb.KR(new Keyboard_test());function Keyboard_test(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_test";this.KN="Keyboard Version Test";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="2.0";this.KMBM=0x0;this.KVER="17.0.159.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;return r;};}
\ No newline at end of file
diff --git a/developer/src/test/auto/keyboard-package-versions/test-2.0/test.kmn b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.kmn
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-2.0/test.kmn
rename to developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.kmn
diff --git a/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.kmx b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.kmx
new file mode 100644
index 0000000000..0efeffe974
Binary files /dev/null and b/developer/src/kmc-package/test/fixtures/versioning/test-2.0/test.kmx differ
diff --git a/developer/src/test/auto/keyboard-package-versions/test-keyboard-1-vs-package-2.kps b/developer/src/kmc-package/test/fixtures/versioning/test-keyboard-1-vs-package-2.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-keyboard-1-vs-package-2.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test-keyboard-1-vs-package-2.kps
diff --git a/developer/src/test/auto/keyboard-package-versions/test-package-1-vs-keyboard-2.kps b/developer/src/kmc-package/test/fixtures/versioning/test-package-1-vs-keyboard-2.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test-package-1-vs-keyboard-2.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test-package-1-vs-keyboard-2.kps
diff --git a/developer/src/test/auto/keyboard-package-versions/test1-2.kps b/developer/src/kmc-package/test/fixtures/versioning/test1-2.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test1-2.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test1-2.kps
diff --git a/developer/src/test/auto/keyboard-package-versions/test1.kps b/developer/src/kmc-package/test/fixtures/versioning/test1.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test1.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test1.kps
diff --git a/developer/src/test/auto/keyboard-package-versions/test2-1.kps b/developer/src/kmc-package/test/fixtures/versioning/test2-1.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test2-1.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test2-1.kps
diff --git a/developer/src/test/auto/keyboard-package-versions/test2.kps b/developer/src/kmc-package/test/fixtures/versioning/test2.kps
similarity index 100%
rename from developer/src/test/auto/keyboard-package-versions/test2.kps
rename to developer/src/kmc-package/test/fixtures/versioning/test2.kps
diff --git a/developer/src/kmc-package/test/test-versioning.ts b/developer/src/kmc-package/test/test-versioning.ts
new file mode 100644
index 0000000000..e9771a369a
--- /dev/null
+++ b/developer/src/kmc-package/test/test-versioning.ts
@@ -0,0 +1,42 @@
+import 'mocha';
+import { assert } from 'chai';
+import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
+import { makePathToFixture } from './helpers/index.js';
+import { KmpCompiler } from '../src/compiler/kmp-compiler.js';
+import { KmpJsonFile } from '@keymanapp/common-types';
+
+// This unit test was translated from a Delphi test
+// Keyman.Test.System.CompilePackageVersioningTest, but note the difference in
+// test results documented below.
+
+describe('package versioning', function () {
+
+ const cases: [string,string][] = [
+ ['test-single-version-1-package', 'test1.kps'],
+ ['test-single-version-2-package', 'test2.kps'],
+
+ // The test result for the following two packages has changed in Keyman 17,
+ // in commit 92c8c6497e987a0583c62c91515884e6e36ece23, to 'shouldPass':
+ //
+ // `WARN_KeyboardVersionsDoNotMatchPackageVersion` has been removed, because
+ // it did not really make sense; if 'FollowKeyboardVersion' is set, it could
+ // not be raised, and otherwise, the author may wish to have separate
+ // keyboard + package versions anyway.
+
+ ['test-version-2-1-mismatch', 'test2-1.kps'],
+ ['test-version-1-2-mismatch', 'test1-2.kps'],
+
+ ['test-keyboard-1-package-2', 'test-keyboard-1-vs-package-2.kps'],
+ ['test-package-1-keyboard-2', 'test-package-1-vs-keyboard-2.kps'],
+ ];
+
+ for(const [ caseTitle, filename ] of cases) {
+ it(caseTitle, async function () {
+ const callbacks = new TestCompilerCallbacks();
+ const kmpCompiler = new KmpCompiler(callbacks);
+ const kpsPath = makePathToFixture('versioning', filename);
+ const kmpJson: KmpJsonFile.KmpJsonFile = kmpCompiler.transformKpsToKmpObject(kpsPath);
+ assert.isTrue(kmpJson !== null);
+ });
+ }
+});
diff --git a/developer/src/test/auto/Makefile b/developer/src/test/auto/Makefile
index 68108dde1f..8f815f3b7b 100644
--- a/developer/src/test/auto/Makefile
+++ b/developer/src/test/auto/Makefile
@@ -16,7 +16,6 @@ test:
developer-tests: \
compile-supplementary-support \
keyboard-js-info \
- keyboard-package-versions \
kmcomp \
kmcomp-x64-structures \
kmconvert \
@@ -44,10 +43,6 @@ kmx-file-languages: .virtual
cd $(DEVELOPER_ROOT)\src\test\auto\kmx-file-languages
$(MAKE) $(TARGET)
-keyboard-package-versions: .virtual
- cd $(DEVELOPER_ROOT)\src\test\auto\keyboard-package-versions
- $(MAKE) $(TARGET)
-
kmcomp: .virtual
cd $(DEVELOPER_ROOT)\src\test\auto\kmcomp
$(MAKE) $(TARGET)
diff --git a/developer/src/test/auto/developer-test-auto.groupproj b/developer/src/test/auto/developer-test-auto.groupproj
index cf31a8f8ce..b680dfb6ae 100644
--- a/developer/src/test/auto/developer-test-auto.groupproj
+++ b/developer/src/test/auto/developer-test-auto.groupproj
@@ -6,9 +6,6 @@
-
-
-
@@ -41,15 +38,6 @@
-
-
-
-
-
-
-
-
-
@@ -96,13 +84,13 @@
-
+
-
+
-
+
diff --git a/developer/src/test/auto/keyboard-package-versions/.gitignore b/developer/src/test/auto/keyboard-package-versions/.gitignore
deleted file mode 100644
index 09bf1459b5..0000000000
--- a/developer/src/test/auto/keyboard-package-versions/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.kmp
-test-?.0/*.js
-test-?.0/*.kmx
diff --git a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr
deleted file mode 100644
index d3645dc38f..0000000000
--- a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dpr
+++ /dev/null
@@ -1,142 +0,0 @@
-program KeyboardPackageVersionsTestSuite;
-
-{$IFNDEF TESTINSIGHT}
-{$APPTYPE CONSOLE}
-{$ENDIF}{$STRONGLINKTYPES ON}
-uses
- System.SysUtils,
- {$IFDEF TESTINSIGHT}
- TestInsight.DUnitX,
- {$ENDIF }
- DUnitX.Loggers.Console,
- DUnitX.Loggers.Xml.NUnit,
- DUnitX.TestFramework,
- Keyman.Test.System.CompilePackageVersioningTest in 'Keyman.Test.System.CompilePackageVersioningTest.pas',
- CompilePackage in '..\..\..\common\delphi\compiler\CompilePackage.pas',
- VisualKeyboard in '..\..\..\..\..\common\windows\delphi\visualkeyboard\VisualKeyboard.pas',
- kmpinffile in '..\..\..\..\..\common\windows\delphi\packages\kmpinffile.pas',
- kpsfile in '..\..\..\common\delphi\packages\kpsfile.pas',
- PackageFileFormats in '..\..\..\..\..\common\windows\delphi\packages\PackageFileFormats.pas',
- PackageInfo in '..\..\..\..\..\common\windows\delphi\packages\PackageInfo.pas',
- utilfiletypes in '..\..\..\..\..\common\windows\delphi\general\utilfiletypes.pas',
- StockFileNames in '..\..\..\..\..\common\windows\delphi\general\StockFileNames.pas',
- utilstr in '..\..\..\..\..\common\windows\delphi\general\utilstr.pas',
- Unicode in '..\..\..\..\..\common\windows\delphi\general\Unicode.pas',
- JsonUtil in '..\..\..\..\..\common\windows\delphi\general\JsonUtil.pas',
- KeymanVersion in '..\..\..\..\..\common\windows\delphi\general\KeymanVersion.pas',
- utildir in '..\..\..\..\..\common\windows\delphi\general\utildir.pas',
- utilsystem in '..\..\..\..\..\common\windows\delphi\general\utilsystem.pas',
- RegistryKeys in '..\..\..\..\..\common\windows\delphi\general\RegistryKeys.pas',
- utilexecute in '..\..\..\..\..\common\windows\delphi\general\utilexecute.pas',
- GetOsVersion in '..\..\..\..\..\common\windows\delphi\general\GetOsVersion.pas',
- VersionInfo in '..\..\..\..\..\common\windows\delphi\general\VersionInfo.pas',
- ExtShiftState in '..\..\..\..\..\common\windows\delphi\visualkeyboard\ExtShiftState.pas',
- VisualKeyboardLoaderBinary in '..\..\..\..\..\common\windows\delphi\visualkeyboard\VisualKeyboardLoaderBinary.pas',
- VisualKeyboardLoaderXML in '..\..\..\..\..\common\windows\delphi\visualkeyboard\VisualKeyboardLoaderXML.pas',
- VisualKeyboardSaverBinary in '..\..\..\..\..\common\windows\delphi\visualkeyboard\VisualKeyboardSaverBinary.pas',
- VisualKeyboardSaverXML in '..\..\..\..\..\common\windows\delphi\visualkeyboard\VisualKeyboardSaverXML.pas',
- VKeyChars in '..\..\..\..\..\common\windows\delphi\general\VKeyChars.pas',
- VKeys in '..\..\..\..\..\common\windows\delphi\general\VKeys.pas',
- ErrorControlledRegistry in '..\..\..\..\..\common\windows\delphi\vcl\ErrorControlledRegistry.pas',
- kmxfile in '..\..\..\..\..\common\windows\delphi\keyboards\kmxfile.pas',
- KeyNames in '..\..\..\..\..\common\windows\delphi\general\KeyNames.pas',
- KeymanDeveloperOptions in '..\..\..\tike\main\KeymanDeveloperOptions.pas',
- Keyman.System.PackageInfoRefreshKeyboards in '..\..\..\common\delphi\packages\Keyman.System.PackageInfoRefreshKeyboards.pas',
- Keyman.System.KeyboardJSInfo in '..\..\..\common\delphi\keyboards\Keyman.System.KeyboardJSInfo.pas',
- Keyman.System.KeyboardUtils in '..\..\..\common\delphi\keyboards\Keyman.System.KeyboardUtils.pas',
- Keyman.System.KMXFileLanguages in '..\..\..\common\delphi\keyboards\Keyman.System.KMXFileLanguages.pas',
- Keyman.System.Standards.ISO6393ToBCP47Registry in '..\..\..\..\..\common\windows\delphi\standards\Keyman.System.Standards.ISO6393ToBCP47Registry.pas',
- Keyman.System.Standards.LCIDToBCP47Registry in '..\..\..\..\..\common\windows\delphi\standards\Keyman.System.Standards.LCIDToBCP47Registry.pas',
- TempFileManager in '..\..\..\..\..\common\windows\delphi\general\TempFileManager.pas',
- RedistFiles in '..\..\..\tike\main\RedistFiles.pas',
- DebugPaths in '..\..\..\..\..\common\windows\delphi\general\DebugPaths.pas',
- Upload_Settings in '..\..\..\..\..\common\windows\delphi\general\Upload_Settings.pas',
- klog in '..\..\..\..\..\common\windows\delphi\general\klog.pas',
- compile in '..\..\..\common\delphi\compiler\compile.pas',
- Keyman.Developer.System.Project.kmnProjectFile in '..\..\..\tike\project\Keyman.Developer.System.Project.kmnProjectFile.pas',
- Keyman.Developer.System.Project.kmnProjectFileAction in '..\..\..\tike\project\Keyman.Developer.System.Project.kmnProjectFileAction.pas',
- Keyman.Developer.System.Project.Project in '..\..\..\tike\project\Keyman.Developer.System.Project.Project.pas',
- Keyman.Developer.System.Project.ProjectFile in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectFile.pas',
- Keyman.Developer.System.Project.ProjectFiles in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectFiles.pas',
- Keyman.Developer.System.Project.ProjectFileType in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectFileType.pas',
- mrulist in '..\..\..\tike\main\mrulist.pas',
- kmxfileconsts in '..\..\..\..\..\common\windows\delphi\keyboards\kmxfileconsts.pas',
- Keyman.Developer.System.Project.ProjectLoader in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectLoader.pas',
- Keyman.Developer.System.Project.ProjectLog in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectLog.pas',
- Keyman.Developer.System.Project.ProjectSaver in '..\..\..\tike\project\Keyman.Developer.System.Project.ProjectSaver.pas',
- UKeymanTargets in '..\..\..\common\delphi\general\UKeymanTargets.pas',
- CompileErrorCodes in '..\..\..\common\delphi\compiler\CompileErrorCodes.pas',
- KeyboardParser in '..\..\..\tike\main\KeyboardParser.pas',
- WindowsLanguages in '..\..\..\common\delphi\general\WindowsLanguages.pas',
- KeymanWebKeyCodes in '..\..\..\tike\compile\KeymanWebKeyCodes.pas',
- kmxfileutils in '..\..\..\..\..\common\windows\delphi\keyboards\kmxfileutils.pas',
- TouchLayoutDefinitions in '..\..\..\tike\oskbuilder\TouchLayoutDefinitions.pas',
- TouchLayout in '..\..\..\tike\oskbuilder\TouchLayout.pas',
- KeyboardFonts in '..\..\..\common\delphi\general\KeyboardFonts.pas',
- Keyman.Developer.System.Project.kpsProjectFile in '..\..\..\tike\project\Keyman.Developer.System.Project.kpsProjectFile.pas',
- Keyman.Developer.System.Project.kpsProjectFileAction in '..\..\..\tike\project\Keyman.Developer.System.Project.kpsProjectFileAction.pas',
- CompilePackageInstaller in '..\..\..\common\delphi\compiler\CompilePackageInstaller.pas',
- utilhttp in '..\..\..\..\..\common\windows\delphi\general\utilhttp.pas',
- Keyman.System.LanguageCodeUtils in '..\..\..\..\..\common\windows\delphi\general\Keyman.System.LanguageCodeUtils.pas',
- Keyman.System.RegExGroupHelperRSP19902 in '..\..\..\..\..\common\windows\delphi\vcl\Keyman.System.RegExGroupHelperRSP19902.pas',
- DUnitX.Loggers.TeamCity in '..\..\..\..\..\common\windows\delphi\general\DUnitX.Loggers.TeamCity.pas',
- BCP47Tag in '..\..\..\..\..\common\windows\delphi\general\BCP47Tag.pas',
- Keyman.System.Standards.BCP47SubtagRegistry in '..\..\..\..\..\common\windows\delphi\standards\Keyman.System.Standards.BCP47SubtagRegistry.pas',
- Keyman.System.Standards.BCP47SuppressScriptRegistry in '..\..\..\..\..\common\windows\delphi\standards\Keyman.System.Standards.BCP47SuppressScriptRegistry.pas',
- Keyman.System.CanonicalLanguageCodeUtils in '..\..\..\..\..\common\windows\delphi\general\Keyman.System.CanonicalLanguageCodeUtils.pas',
- TextFileFormat in '..\..\..\common\delphi\general\TextFileFormat.pas',
- Keyman.System.LexicalModelUtils in '..\..\..\common\delphi\lexicalmodels\Keyman.System.LexicalModelUtils.pas',
- Keyman.System.PackageInfoRefreshLexicalModels in '..\..\..\common\delphi\packages\Keyman.System.PackageInfoRefreshLexicalModels.pas',
- Keyman.System.Standards.LangTagsRegistry in '..\..\..\..\..\common\windows\delphi\standards\Keyman.System.Standards.LangTagsRegistry.pas',
- Keyman.Developer.System.Project.UrlRenderer in '..\..\..\tike\project\Keyman.Developer.System.Project.UrlRenderer.pas',
- KeymanPaths in '..\..\..\..\..\common\windows\delphi\general\KeymanPaths.pas',
- Keyman.Developer.System.ValidateKpsFile in '..\..\..\common\delphi\compiler\Keyman.Developer.System.ValidateKpsFile.pas',
- Keyman.Developer.System.KeymanDeveloperPaths in '..\..\..\tike\main\Keyman.Developer.System.KeymanDeveloperPaths.pas',
- Keyman.Developer.System.KmcWrapper in '..\..\..\tike\compile\Keyman.Developer.System.KmcWrapper.pas';
-
-var
- runner : ITestRunner;
- results : IRunResults;
- logger : ITestLogger;
- nunitLogger : ITestLogger;
-begin
-{$IFDEF TESTINSIGHT}
- TestInsight.DUnitX.RunRegisteredTests;
- exit;
-{$ENDIF}
- try
- //Check command line options, will exit if invalid
- TDUnitX.CheckCommandLine;
- //Create the test runner
- runner := TDUnitX.CreateRunner;
- //Tell the runner to use RTTI to find Fixtures
- runner.UseRTTI := True;
- //tell the runner how we will log things
- //Log to the console window
- logger := TDUnitXConsoleLogger.Create(true);
- runner.AddLogger(logger);
- //Generate an NUnit compatible XML File
- nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
- runner.AddLogger(nunitLogger);
- runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
-
- //Run tests
- results := runner.Execute;
- if not results.AllPassed then
- System.ExitCode := EXIT_ERRORS;
-
- {$IFNDEF CI}
- //We don't want this happening when running under CI.
- if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
- begin
- System.Write('Done.. press key to quit.');
- System.Readln;
- end;
- {$ENDIF}
-
- DUnitX.Loggers.TeamCity.ReportToTeamCity;
- except
- on E: Exception do
- System.Writeln(E.ClassName, ': ', E.Message);
- end;
-end.
diff --git a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj
deleted file mode 100644
index 1ebd5a7734..0000000000
--- a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.dproj
+++ /dev/null
@@ -1,1034 +0,0 @@
-
-
- {7A8E88E4-B407-442B-9A53-DE6F43F1C0F1}
- 18.8
- VCL
- KeyboardPackageVersionsTestSuite.dpr
- True
- Debug
- Win32
- 1
- Console
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Cfg_1
- true
- true
-
-
- true
- Base
- true
-
-
- .\obj\$(Platform)\$(Config)
- .\bin\$(Platform)\$(Config)
- false
- false
- false
- false
- false
- RESTComponents;FireDAC;FireDACSqliteDriver;soaprtl;FireDACIBDriver;soapmidas;FireDACCommon;RESTBackendComponents;soapserver;CloudService;FireDACCommonDriver;inet;$(DCC_UsePackage)
- System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
- true
- $(BDS)\bin\delphi_PROJECTICON.ico
- $(BDS)\bin\delphi_PROJECTICNS.icns
- $(DUnitX);$(DCC_UnitSearchPath)
- KeyboardPackageVersionsTestSuite
- $(CI);$(DCC_Define)
- 3081
- CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
-
-
- DBXSqliteDriver;bindcompdbx;IndyIPCommon;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;svnui;mbColorLibD10;dsnapcon;FireDACADSDriver;scFontCombo;DCPdelphi2009;FireDACMSAccDriver;fmxFireDAC;vclimg;Jcl;vcltouch;JvCore;vcldb;bindcompfmx;svn;FireDACPgDriver;inetdb;DbxCommonDriver;fmx;fmxdae;xmlrtl;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;IndyIPClient;bindcompvcl;EmbeddedWebBrowser_XE;VCLRESTComponents;dbxcds;VclSmp;JvDocking;adortl;JclVcl;vclie;bindengine;DBXMySQLDriver;dsnapxml;FireDACMySQLDriver;dbrtl;inetdbxpress;IndyProtocols;keyman_components;FireDACCommonODBC;fmxase;$(DCC_UsePackage)
- Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- Debug
- CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
- 1033
-
-
- DBXSqliteDriver;bindcompdbx;IndyIPCommon;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;Jcl;vcltouch;vcldb;bindcompfmx;FireDACPgDriver;inetdb;DbxCommonDriver;fmx;fmxdae;xmlrtl;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;IndyIPClient;bindcompvcl;VCLRESTComponents;dbxcds;VclSmp;adortl;JclVcl;vclie;bindengine;DBXMySQLDriver;dsnapxml;FireDACMySQLDriver;dbrtl;inetdbxpress;IndyProtocols;FireDACCommonODBC;fmxase;$(DCC_UsePackage)
-
-
- DEBUG;$(DCC_Define)
- true
- false
- true
- true
- true
-
-
- false
- -l:Information
- 1033
- (None)
-
-
- false
- RELEASE;$(DCC_Define)
- 0
- 0
-
-
-
- MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
- Delphi.Personality.12
- Console
-
-
-
- KeyboardPackageVersionsTestSuite.dpr
-
-
- Microsoft Office 2000 Sample Automation Server Wrapper Components
- Microsoft Office XP Sample Automation Server Wrapper Components
-
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- KeyboardPackageVersionsTestSuite.exe
- true
-
-
-
-
- 1
-
-
- 0
-
-
-
-
- classes
- 1
-
-
- classes
- 1
-
-
-
-
- res\xml
- 1
-
-
- res\xml
- 1
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- library\lib\armeabi
- 1
-
-
- library\lib\armeabi
- 1
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- library\lib\mips
- 1
-
-
- library\lib\mips
- 1
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
- library\lib\arm64-v8a
- 1
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- res\drawable
- 1
-
-
- res\drawable
- 1
-
-
-
-
- res\values
- 1
-
-
- res\values
- 1
-
-
-
-
- res\values-v21
- 1
-
-
- res\values-v21
- 1
-
-
-
-
- res\values
- 1
-
-
- res\values
- 1
-
-
-
-
- res\drawable
- 1
-
-
- res\drawable
- 1
-
-
-
-
- res\drawable-xxhdpi
- 1
-
-
- res\drawable-xxhdpi
- 1
-
-
-
-
- res\drawable-ldpi
- 1
-
-
- res\drawable-ldpi
- 1
-
-
-
-
- res\drawable-mdpi
- 1
-
-
- res\drawable-mdpi
- 1
-
-
-
-
- res\drawable-hdpi
- 1
-
-
- res\drawable-hdpi
- 1
-
-
-
-
- res\drawable-xhdpi
- 1
-
-
- res\drawable-xhdpi
- 1
-
-
-
-
- res\drawable-mdpi
- 1
-
-
- res\drawable-mdpi
- 1
-
-
-
-
- res\drawable-hdpi
- 1
-
-
- res\drawable-hdpi
- 1
-
-
-
-
- res\drawable-xhdpi
- 1
-
-
- res\drawable-xhdpi
- 1
-
-
-
-
- res\drawable-xxhdpi
- 1
-
-
- res\drawable-xxhdpi
- 1
-
-
-
-
- res\drawable-xxxhdpi
- 1
-
-
- res\drawable-xxxhdpi
- 1
-
-
-
-
- res\drawable-small
- 1
-
-
- res\drawable-small
- 1
-
-
-
-
- res\drawable-normal
- 1
-
-
- res\drawable-normal
- 1
-
-
-
-
- res\drawable-large
- 1
-
-
- res\drawable-large
- 1
-
-
-
-
- res\drawable-xlarge
- 1
-
-
- res\drawable-xlarge
- 1
-
-
-
-
- res\values
- 1
-
-
- res\values
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 0
-
-
-
-
- 1
- .framework
-
-
- 1
- .framework
-
-
- 0
-
-
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 0
- .dll;.bpl
-
-
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 0
- .bpl
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
-
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
-
-
-
- Contents\Resources
- 1
-
-
- Contents\Resources
- 1
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
- library\lib\arm64-v8a
- 1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
- 0
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- 1
-
-
- 1
-
-
-
-
- Assets
- 1
-
-
- Assets
- 1
-
-
-
-
- Assets
- 1
-
-
- Assets
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- False
-
-
- 12
-
-
-
-
-
diff --git a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.res b/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.res
deleted file mode 100644
index 6876088a66..0000000000
Binary files a/developer/src/test/auto/keyboard-package-versions/KeyboardPackageVersionsTestSuite.res and /dev/null differ
diff --git a/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas b/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas
deleted file mode 100644
index 8fd0c993f7..0000000000
--- a/developer/src/test/auto/keyboard-package-versions/Keyman.Test.System.CompilePackageVersioningTest.pas
+++ /dev/null
@@ -1,155 +0,0 @@
-unit Keyman.Test.System.CompilePackageVersioningTest;
-
-interface
-
-uses
- DUnitX.TestFramework,
- Keyman.Developer.System.Project.ProjectLog;
-
-type
-
- [TestFixture]
- TCompilePackageVersioningTest = class(TObject)
- private
- FRoot: string;
- procedure PackageMessage(Sender: TObject; msg: string;
- State: TProjectLogState);
- public
- [Setup]
- procedure Setup;
- [TearDown]
- procedure TearDown;
- // Sample Methods
- // Simple single Test
- // Test with TestCase Attribute to supply parameters.
- [Test]
- [TestCase('test-single-version-1-package', 'test1.kps,False')]
- [TestCase('test-single-version-2-package', 'test2.kps,False')]
- [TestCase('test-version-2-1-mismatch', 'test2-1.kps,True')]
- [TestCase('test-version-1-2-mismatch', 'test1-2.kps,True')]
- [TestCase('test-keyboard-1-package-2', 'test-keyboard-1-vs-package-2.kps,False')]
- [TestCase('test-package-1-keyboard-2', 'test-package-1-vs-keyboard-2.kps,False')]
- procedure TestPackageCompile(Path: string; ExpectError: Boolean);
- end;
-
-implementation
-
-uses
- System.SysUtils,
- Winapi.ActiveX,
-
- compile,
- CompilePackage,
- Keyman.Developer.System.Project.kmnProjectFileAction,
- Keyman.Developer.System.Project.ProjectFile,
- kpsfile;
-
-type
- TProjectConsole = class(TProject)
- private
- FSilent: Boolean;
- FFullySilent: Boolean;
- public
- procedure Log(AState: TProjectLogState; Filename: string; Msg: string; MsgCode, line: Integer); override; // I4706
- function Save: Boolean; override; // I4709
-
- property Silent: Boolean read FSilent write FSilent;
- property FullySilent: Boolean read FFullySilent write FFullySilent;
- end;
-
-procedure TCompilePackageVersioningTest.Setup;
-var
- p: TProjectConsole;
- i: Integer;
-begin
- Assert.IgnoreCaseDefault := False;
-
- FRoot := ExtractFileDir(ExtractFileDir(ExtractFileDir(ExtractFileDir(ParamStr(0)))));
-
- p := TProjectConsole.Create(ptUnknown, FRoot+'\test-1.0\test-1.0.kpj', False);
- try
- for i := 0 to p.Files.Count - 1 do
- if p.Files[i] is TkmnProjectFileAction then
- Assert.IsTrue((p.Files[i] as TkmnProjectFileAction).CompileKeyboard, 'Could not compile keyboard');
- finally
- p.Free;
- end;
-
- p := TProjectConsole.Create(ptUnknown, FRoot+'\test-2.0\test-2.0.kpj', False);
- try
- for i := 0 to p.Files.Count - 1 do
- if p.Files[i] is TkmnProjectFileAction then
- Assert.IsTrue((p.Files[i] as TkmnProjectFileAction).CompileKeyboard, 'Could not compile keyboard');
- finally
- p.Free;
- end;
-end;
-
-procedure TCompilePackageVersioningTest.TearDown;
-begin
-end;
-
-procedure TCompilePackageVersioningTest.PackageMessage(Sender: TObject; msg: string; State: TProjectLogState);
-const
- Map: array[TProjectLogState] of TLogLevel = (
- {plsInfo} TLogLevel.Information,
- {plsHint} TLogLevel.Information,
- {plsWarning} TLogLevel.Warning,
- {plsError} TLogLevel.Error,
- {plsFatal} TLogLevel.Error,
- {plsSuccess} TLogLevel.Information,
- {plsFailure} TLogLevel.Error
- );
-begin
- Log(Map[State], msg);
-end;
-
-procedure TCompilePackageVersioningTest.TestPackageCompile(Path: string; ExpectError: Boolean);
-var
- pack: TKPSFile;
- res: Boolean;
-begin
- pack := TKPSFile.Create;
- try
- pack.FileName := FRoot+'\'+Path;
- pack.LoadXML;
- res := DoCompilePackage(pack, PackageMessage, False, False, FRoot+'\'+ChangeFileExt(Path,'.kmp'));
- Assert.AreEqual(not ExpectError, res);
- finally
- pack.Free;
- end;
-end;
-
-procedure TProjectConsole.Log(AState: TProjectLogState; Filename, Msg: string; MsgCode, line: Integer); // I4706
-begin
-{$IFDEF DEBUG_PROJECT}
- case AState of
- plsInfo,
- plsSuccess,
- plsFailure:
- if not FSilent then
- writeln(ExtractFileName(Filename)+': '+Msg);
- plsWarning:
- if not FFullySilent then
- writeln(ExtractFileName(Filename)+': Warning: '+Msg);
- plsError:
- if not FFullySilent then
- writeln(ExtractFileName(Filename)+': Error: '+Msg);
- plsFatal:
- writeln(ExtractFileName(Filename)+': Fatal error: '+Msg);
- end;
-{$ENDIF}
-end;
-
-function TProjectConsole.Save: Boolean; // I4709
-begin
- // We don't modify the project file in the console
- Result := True;
-end;
-
-initialization
- CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
- TDUnitX.RegisterTestFixture(TCompilePackageVersioningTest);
-finalization
- CoUninitialize;
-end.
diff --git a/developer/src/test/auto/keyboard-package-versions/Makefile b/developer/src/test/auto/keyboard-package-versions/Makefile
deleted file mode 100644
index c07f744018..0000000000
--- a/developer/src/test/auto/keyboard-package-versions/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Test that package compiler manages keyboard and package versions correctly
-#
-# NOTE: The .dproj needs $(CI) added to the Delphi Compiler/Conditional defines (All
-# configurations - all platforms) section in order for the CI flag to be passed in.
-# (It's best to make this change in Delphi IDE).
-#
-
-!include ..\..\..\Defines.mak
-
-test: build
- $(WIN32_TARGET_PATH)\keyboardpackageversionstestsuite.exe -b -exit:continue
-
-build:
- $(DELPHI_MSBUILD) "/p:CI=CI" keyboardpackageversionstestsuite.dproj
-
-clean: def-clean
- -del *.kmp
- -del test-1.0\*.kmx
- -del test-2.0\*.kmx
- -del test-1.0\*.js
- -del test-2.0\*.js
-
-!include ..\..\..\Target.mak