]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Initial work on an automated VSIX testing tool. Not working or tested yet.
authormistachkin <mistachkin@noemail.net>
Wed, 24 Feb 2016 21:42:03 +0000 (21:42 +0000)
committermistachkin <mistachkin@noemail.net>
Wed, 24 Feb 2016 21:42:03 +0000 (21:42 +0000)
FossilOrigin-Name: 496e4ac984b2548dd5f2f969cd34656b586cfcfe

23 files changed:
manifest
manifest.uuid
vsixtest/App.xaml [new file with mode: 0644]
vsixtest/App.xaml.cpp [new file with mode: 0644]
vsixtest/App.xaml.h [new file with mode: 0644]
vsixtest/Assets/LockScreenLogo.scale-200.png [new file with mode: 0644]
vsixtest/Assets/SplashScreen.scale-200.png [new file with mode: 0644]
vsixtest/Assets/Square150x150Logo.scale-200.png [new file with mode: 0644]
vsixtest/Assets/Square44x44Logo.scale-200.png [new file with mode: 0644]
vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png [new file with mode: 0644]
vsixtest/Assets/StoreLogo.png [new file with mode: 0644]
vsixtest/Assets/Wide310x150Logo.scale-200.png [new file with mode: 0644]
vsixtest/MainPage.xaml [new file with mode: 0644]
vsixtest/MainPage.xaml.cpp [new file with mode: 0644]
vsixtest/MainPage.xaml.h [new file with mode: 0644]
vsixtest/Package.appxmanifest [new file with mode: 0644]
vsixtest/pch.cpp [new file with mode: 0644]
vsixtest/pch.h [new file with mode: 0644]
vsixtest/vsixtest.sln [new file with mode: 0644]
vsixtest/vsixtest.tcl [new file with mode: 0644]
vsixtest/vsixtest.vcxproj [new file with mode: 0644]
vsixtest/vsixtest.vcxproj.filters [new file with mode: 0644]
vsixtest/vsixtest_TemporaryKey.pfx [new file with mode: 0644]

index a6c34eb4bb70edd28f837d93c34f40fea285b08a..e9256df54832eec19ba5b25650311c45768b5240 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Extend\s[3e9ed1ae]\sso\sthat\scovering\sindexes\son\sWITHOUT\sROWID\stables\sare\salso\sidentified.
-D 2016-02-24T20:16:28.164
+C Initial\swork\son\san\sautomated\sVSIX\stesting\stool.\s\sNot\sworking\sor\stested\syet.
+D 2016-02-24T21:42:03.852
 F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 28fc4ee02333996d31b3602b39eeb8e609a89ce4
@@ -1429,7 +1429,31 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 56f62e34ae9d5c7db07367f0007df258b2e76bd2
-R baac3e94ca81a0031c96821cb1862aed
-U dan
-Z 255768a198e66c588af8c08668af4632
+F vsixtest/App.xaml 7af5a2a527aa5783e208c436c5227a21b1023cec
+F vsixtest/App.xaml.cpp c4aaab1774e771d2b6f662cbd247fd31df087a22
+F vsixtest/App.xaml.h f723ae437a141cd496adfccae517a6011dd95dfb
+F vsixtest/Assets/LockScreenLogo.scale-200.png e820c9a3deb909197081b0bf3216c06e13905f0a
+F vsixtest/Assets/SplashScreen.scale-200.png cab70988ca71bebec7bfeb3b6dbafe17b9ab0b4a
+F vsixtest/Assets/Square150x150Logo.scale-200.png e17b40817db7a239fc239d83efcc951fb824e3ff
+F vsixtest/Assets/Square44x44Logo.scale-200.png 2f166237094dea94d952d10b9eeae81806844f1c
+F vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png 5f6a6d391b95a3061ccca6e6fdd6955ede63b4ed
+F vsixtest/Assets/StoreLogo.png 0828b7257db74a4ecd5eeb6b7b4971f0fdc4d9d1
+F vsixtest/Assets/Wide310x150Logo.scale-200.png 04ddefe5bc5f43ae12a7433f6f236ddab101ac42
+F vsixtest/MainPage.xaml b17ae614fc9aab5ee0068e16c9a3e3461d13b6d1
+F vsixtest/MainPage.xaml.cpp 66f81d6149d9a09de5c6c7846c6557cdd7a76b15
+F vsixtest/MainPage.xaml.h 5b8d65dc2b9e59e29bc0a6bca81211ff27ac830a
+F vsixtest/Package.appxmanifest 0535b2e6708c44ad45ed7fb1dfd4de5de351dd7a
+F vsixtest/pch.cpp 681cc12ddc215c95fe300ee8a3dde057fa2ec308
+F vsixtest/pch.h 9d2475a4f6d5c921b86c8f61060b6b04421f1010
+F vsixtest/vsixtest.sln 8950e044dd04a07046990d04bf77e60738e2d136
+F vsixtest/vsixtest.tcl d452077319cd94e626e37a8ea323f4e739dbc5a6
+F vsixtest/vsixtest.vcxproj 15407f0e35e914fecc65ed422ac08b28e52b3e4f
+F vsixtest/vsixtest.vcxproj.filters 443739cb985bb81620dc66f375a845b25debe116
+F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
+P e721975faa0925be4029330550ff2a9666041ff7
+R 5235a7354869742aeac200c2498e03f2
+T *branch * vsixTest
+T *sym-vsixTest *
+T -sym-trunk *
+U mistachkin
+Z 30aae13ef1f9c0b59510b9ed5eae30fc
index 56555f4bc25541c49a024519d72673b5d120a151..8ebfae5b1629de7c81d3b7a62bb3402193bd4328 100644 (file)
@@ -1 +1 @@
-e721975faa0925be4029330550ff2a9666041ff7
\ No newline at end of file
+496e4ac984b2548dd5f2f969cd34656b586cfcfe
\ No newline at end of file
diff --git a/vsixtest/App.xaml b/vsixtest/App.xaml
new file mode 100644 (file)
index 0000000..7f023fe
--- /dev/null
@@ -0,0 +1,8 @@
+<Application\r
+    x:Class="vsixtest.App"\r
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\r
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\r
+    xmlns:local="using:vsixtest"\r
+    RequestedTheme="Light">\r
+\r
+</Application>\r
diff --git a/vsixtest/App.xaml.cpp b/vsixtest/App.xaml.cpp
new file mode 100644 (file)
index 0000000..5d60058
--- /dev/null
@@ -0,0 +1,120 @@
+//\r
+// App.xaml.cpp\r
+// Implementation of the App class.\r
+//\r
+\r
+#include "pch.h"\r
+#include "MainPage.xaml.h"\r
+\r
+using namespace vsixtest;\r
+\r
+using namespace Platform;\r
+using namespace Windows::ApplicationModel;\r
+using namespace Windows::ApplicationModel::Activation;\r
+using namespace Windows::Foundation;\r
+using namespace Windows::Foundation::Collections;\r
+using namespace Windows::UI::Xaml;\r
+using namespace Windows::UI::Xaml::Controls;\r
+using namespace Windows::UI::Xaml::Controls::Primitives;\r
+using namespace Windows::UI::Xaml::Data;\r
+using namespace Windows::UI::Xaml::Input;\r
+using namespace Windows::UI::Xaml::Interop;\r
+using namespace Windows::UI::Xaml::Media;\r
+using namespace Windows::UI::Xaml::Navigation;\r
+\r
+/// <summary>\r
+/// Initializes the singleton application object.  This is the first line of authored code\r
+/// executed, and as such is the logical equivalent of main() or WinMain().\r
+/// </summary>\r
+App::App()\r
+{\r
+       InitializeComponent();\r
+       Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending);\r
+}\r
+\r
+/// <summary>\r
+/// Invoked when the application is launched normally by the end user. Other entry points\r
+/// will be used such as when the application is launched to open a specific file.\r
+/// </summary>\r
+/// <param name="e">Details about the launch request and process.</param>\r
+void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)\r
+{\r
+\r
+#if _DEBUG\r
+               // Show graphics profiling information while debugging.\r
+               if (IsDebuggerPresent())\r
+               {\r
+                       // Display the current frame rate counters\r
+                        DebugSettings->EnableFrameRateCounter = true;\r
+               }\r
+#endif\r
+\r
+       auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content);\r
+\r
+       // Do not repeat app initialization when the Window already has content,\r
+       // just ensure that the window is active\r
+       if (rootFrame == nullptr)\r
+       {\r
+               // Create a Frame to act as the navigation context and associate it with\r
+               // a SuspensionManager key\r
+               rootFrame = ref new Frame();\r
+\r
+               rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed);\r
+\r
+               if (e->PreviousExecutionState == ApplicationExecutionState::Terminated)\r
+               {\r
+                       // TODO: Restore the saved session state only when appropriate, scheduling the\r
+                       // final launch steps after the restore is complete\r
+\r
+               }\r
+\r
+               if (rootFrame->Content == nullptr)\r
+               {\r
+                       // When the navigation stack isn't restored navigate to the first page,\r
+                       // configuring the new page by passing required information as a navigation\r
+                       // parameter\r
+                       rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);\r
+               }\r
+               // Place the frame in the current Window\r
+               Window::Current->Content = rootFrame;\r
+               // Ensure the current window is active\r
+               Window::Current->Activate();\r
+       }\r
+       else\r
+       {\r
+               if (rootFrame->Content == nullptr)\r
+               {\r
+                       // When the navigation stack isn't restored navigate to the first page,\r
+                       // configuring the new page by passing required information as a navigation\r
+                       // parameter\r
+                       rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);\r
+               }\r
+               // Ensure the current window is active\r
+               Window::Current->Activate();\r
+       }\r
+}\r
+\r
+/// <summary>\r
+/// Invoked when application execution is being suspended.     Application state is saved\r
+/// without knowing whether the application will be terminated or resumed with the contents\r
+/// of memory still intact.\r
+/// </summary>\r
+/// <param name="sender">The source of the suspend request.</param>\r
+/// <param name="e">Details about the suspend request.</param>\r
+void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e)\r
+{\r
+       (void) sender;  // Unused parameter\r
+       (void) e;       // Unused parameter\r
+\r
+       //TODO: Save application state and stop any background activity\r
+}\r
+\r
+/// <summary>\r
+/// Invoked when Navigation to a certain page fails\r
+/// </summary>\r
+/// <param name="sender">The Frame which failed navigation</param>\r
+/// <param name="e">Details about the navigation failure</param>\r
+void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e)\r
+{\r
+       throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name);\r
+}
\ No newline at end of file
diff --git a/vsixtest/App.xaml.h b/vsixtest/App.xaml.h
new file mode 100644 (file)
index 0000000..7322d11
--- /dev/null
@@ -0,0 +1,27 @@
+//\r
+// App.xaml.h\r
+// Declaration of the App class.\r
+//\r
+\r
+#pragma once\r
+\r
+#include "App.g.h"\r
+\r
+namespace vsixtest\r
+{\r
+       /// <summary>\r
+       /// Provides application-specific behavior to supplement the default Application class.\r
+       /// </summary>\r
+       ref class App sealed\r
+       {\r
+       protected:\r
+               virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override;\r
+\r
+       internal:\r
+               App();\r
+\r
+       private:\r
+               void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e);\r
+               void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e);\r
+       };\r
+}\r
diff --git a/vsixtest/Assets/LockScreenLogo.scale-200.png b/vsixtest/Assets/LockScreenLogo.scale-200.png
new file mode 100644 (file)
index 0000000..735f57a
Binary files /dev/null and b/vsixtest/Assets/LockScreenLogo.scale-200.png differ
diff --git a/vsixtest/Assets/SplashScreen.scale-200.png b/vsixtest/Assets/SplashScreen.scale-200.png
new file mode 100644 (file)
index 0000000..023e7f1
Binary files /dev/null and b/vsixtest/Assets/SplashScreen.scale-200.png differ
diff --git a/vsixtest/Assets/Square150x150Logo.scale-200.png b/vsixtest/Assets/Square150x150Logo.scale-200.png
new file mode 100644 (file)
index 0000000..af49fec
Binary files /dev/null and b/vsixtest/Assets/Square150x150Logo.scale-200.png differ
diff --git a/vsixtest/Assets/Square44x44Logo.scale-200.png b/vsixtest/Assets/Square44x44Logo.scale-200.png
new file mode 100644 (file)
index 0000000..ce342a2
Binary files /dev/null and b/vsixtest/Assets/Square44x44Logo.scale-200.png differ
diff --git a/vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644 (file)
index 0000000..f6c02ce
Binary files /dev/null and b/vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/vsixtest/Assets/StoreLogo.png b/vsixtest/Assets/StoreLogo.png
new file mode 100644 (file)
index 0000000..7385b56
Binary files /dev/null and b/vsixtest/Assets/StoreLogo.png differ
diff --git a/vsixtest/Assets/Wide310x150Logo.scale-200.png b/vsixtest/Assets/Wide310x150Logo.scale-200.png
new file mode 100644 (file)
index 0000000..288995b
Binary files /dev/null and b/vsixtest/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/vsixtest/MainPage.xaml b/vsixtest/MainPage.xaml
new file mode 100644 (file)
index 0000000..7672454
--- /dev/null
@@ -0,0 +1,13 @@
+<Page\r
+    x:Class="vsixtest.MainPage"\r
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\r
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\r
+    xmlns:local="using:vsixtest"\r
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"\r
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"\r
+    mc:Ignorable="d">\r
+\r
+    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">\r
+\r
+    </Grid>\r
+</Page>\r
diff --git a/vsixtest/MainPage.xaml.cpp b/vsixtest/MainPage.xaml.cpp
new file mode 100644 (file)
index 0000000..f615f4d
--- /dev/null
@@ -0,0 +1,27 @@
+//\r
+// MainPage.xaml.cpp\r
+// Implementation of the MainPage class.\r
+//\r
+\r
+#include "pch.h"\r
+#include "MainPage.xaml.h"\r
+\r
+using namespace vsixtest;\r
+\r
+using namespace Platform;\r
+using namespace Windows::Foundation;\r
+using namespace Windows::Foundation::Collections;\r
+using namespace Windows::UI::Xaml;\r
+using namespace Windows::UI::Xaml::Controls;\r
+using namespace Windows::UI::Xaml::Controls::Primitives;\r
+using namespace Windows::UI::Xaml::Data;\r
+using namespace Windows::UI::Xaml::Input;\r
+using namespace Windows::UI::Xaml::Media;\r
+using namespace Windows::UI::Xaml::Navigation;\r
+\r
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409\r
+\r
+MainPage::MainPage()\r
+{\r
+       InitializeComponent();\r
+}\r
diff --git a/vsixtest/MainPage.xaml.h b/vsixtest/MainPage.xaml.h
new file mode 100644 (file)
index 0000000..cf95007
--- /dev/null
@@ -0,0 +1,21 @@
+//\r
+// MainPage.xaml.h\r
+// Declaration of the MainPage class.\r
+//\r
+\r
+#pragma once\r
+\r
+#include "MainPage.g.h"\r
+\r
+namespace vsixtest\r
+{\r
+       /// <summary>\r
+       /// An empty page that can be used on its own or navigated to within a Frame.\r
+       /// </summary>\r
+       public ref class MainPage sealed\r
+       {\r
+       public:\r
+               MainPage();\r
+\r
+       };\r
+}\r
diff --git a/vsixtest/Package.appxmanifest b/vsixtest/Package.appxmanifest
new file mode 100644 (file)
index 0000000..49e45cb
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<Package\r
+  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"\r
+  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"\r
+  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"\r
+  IgnorableNamespaces="uap mp">\r
+\r
+  <Identity\r
+    Name="bb52b3e1-5c8a-4516-a5ff-8b9f9baadef7"\r
+    Publisher="CN=mistachkin"\r
+    Version="1.0.0.0" />\r
+\r
+  <mp:PhoneIdentity PhoneProductId="bb52b3e1-5c8a-4516-a5ff-8b9f9baadef7" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>\r
+\r
+  <Properties>\r
+    <DisplayName>vsixtest</DisplayName>\r
+    <PublisherDisplayName>mistachkin</PublisherDisplayName>\r
+    <Logo>Assets\StoreLogo.png</Logo>\r
+  </Properties>\r
+\r
+  <Dependencies>\r
+    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />\r
+  </Dependencies>\r
+\r
+  <Resources>\r
+    <Resource Language="x-generate"/>\r
+  </Resources>\r
+\r
+  <Applications>\r
+    <Application Id="App"\r
+      Executable="$targetnametoken$.exe"\r
+      EntryPoint="vsixtest.App">\r
+      <uap:VisualElements\r
+        DisplayName="vsixtest"\r
+        Square150x150Logo="Assets\Square150x150Logo.png"\r
+        Square44x44Logo="Assets\Square44x44Logo.png"\r
+        Description="vsixtest"\r
+        BackgroundColor="transparent">\r
+        <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>\r
+        <uap:SplashScreen Image="Assets\SplashScreen.png" />\r
+      </uap:VisualElements>\r
+    </Application>\r
+  </Applications>\r
+\r
+  <Capabilities>\r
+    <Capability Name="internetClient" />\r
+  </Capabilities>\r
+</Package>
\ No newline at end of file
diff --git a/vsixtest/pch.cpp b/vsixtest/pch.cpp
new file mode 100644 (file)
index 0000000..ef288d8
--- /dev/null
@@ -0,0 +1,6 @@
+//\r
+// pch.cpp\r
+// Include the standard header and generate the precompiled header.\r
+//\r
+\r
+#include "pch.h"\r
diff --git a/vsixtest/pch.h b/vsixtest/pch.h
new file mode 100644 (file)
index 0000000..e5006e8
--- /dev/null
@@ -0,0 +1,11 @@
+//\r
+// pch.h\r
+// Header for standard system include files.\r
+//\r
+\r
+#pragma once\r
+\r
+#include <collection.h>\r
+#include <ppltasks.h>\r
+\r
+#include "App.xaml.h"\r
diff --git a/vsixtest/vsixtest.sln b/vsixtest/vsixtest.sln
new file mode 100644 (file)
index 0000000..bebec63
--- /dev/null
@@ -0,0 +1,40 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 14\r
+VisualStudioVersion = 14.0.24720.0\r
+MinimumVisualStudioVersion = 10.0.40219.1\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vsixtest", "vsixtest.vcxproj", "{60BB14A5-0871-4656-BC38-4F0958230F9A}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|ARM = Debug|ARM\r
+               Debug|x64 = Debug|x64\r
+               Debug|x86 = Debug|x86\r
+               Release|ARM = Release|ARM\r
+               Release|x64 = Release|x64\r
+               Release|x86 = Release|x86\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.ActiveCfg = Debug|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Build.0 = Debug|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Deploy.0 = Debug|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.ActiveCfg = Debug|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Build.0 = Debug|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Deploy.0 = Debug|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.ActiveCfg = Debug|Win32\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Build.0 = Debug|Win32\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Deploy.0 = Debug|Win32\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.ActiveCfg = Release|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Build.0 = Release|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Deploy.0 = Release|ARM\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.ActiveCfg = Release|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Build.0 = Release|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Deploy.0 = Release|x64\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.ActiveCfg = Release|Win32\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Build.0 = Release|Win32\r
+               {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Deploy.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/vsixtest/vsixtest.tcl b/vsixtest/vsixtest.tcl
new file mode 100644 (file)
index 0000000..3c0a8db
--- /dev/null
@@ -0,0 +1,215 @@
+#!/usr/bin/tclsh
+#
+# This script is used to quickly test a VSIX (Visual Studio Extension) file
+# with Visual Studio 2015 on Windows.
+#
+# PREREQUISITES
+#
+# 1. Tcl 8.4 and later are supported, earlier versions have not been tested.
+#
+# 2. The "sqlite-UWP-output.vsix" file is assumed to exist in the parent
+#    directory of the directory containing this script.  The [optional] first
+#    command line argument to this script may be used to specify an alternate
+#    file.  However, currently, the file must be compatible with both Visual
+#    Studio 2015 and the Universal Windows Platform.
+#
+# 3. The temporary directory specified in the TEMP or TMP environment variables
+#    must refer to an existing directory writable by the current user.
+#
+# 4. The VS140COMNTOOLS environment variable must refer to the Visual Studio
+#    2015 common tools directory.
+#
+# USAGE
+#
+# The first argument to this script is optional.  If specified, it must be the
+# name of the VSIX file to test.
+#
+package require Tcl 8.4
+\f
+proc fail { {error ""} {usage false} } {
+  if {[string length $error] > 0} then {
+    puts stdout $error
+    if {!$usage} then {exit 1}
+  }
+
+  puts stdout "usage:\
+[file tail [info nameofexecutable]]\
+[file tail [info script]] \[vsixFile\]"
+
+  exit 1
+}
+\f
+proc getEnvironmentVariable { name } {
+  #
+  # NOTE: Returns the value of the specified environment variable or an empty
+  #       string for environment variables that do not exist in the current
+  #       process environment.
+  #
+  return [expr {[info exists ::env($name)] ? $::env($name) : ""}]
+}
+\f
+proc getTemporaryPath {} {
+  #
+  # NOTE: Returns the normalized path to the first temporary directory found
+  #       in the typical set of environment variables used for that purpose
+  #       or an empty string to signal a failure to locate such a directory.
+  #
+  set names [list]
+
+  foreach name [list TEMP TMP] {
+    lappend names [string toupper $name] [string tolower $name] \
+        [string totitle $name]
+  }
+
+  foreach name $names {
+    set value [getEnvironmentVariable $name]
+
+    if {[string length $value] > 0} then {
+      return [file normalize $value]
+    }
+  }
+
+  return ""
+}
+\f
+proc appendArgs { args } {
+  #
+  # NOTE: Returns all passed arguments joined together as a single string with
+  #       no intervening spaces between arguments.
+  #
+  eval append result $args
+}
+\f
+#
+# NOTE: This is the entry point for this script.
+#
+set script [file normalize [info script]]
+
+if {[string length $script] == 0} then {
+  fail "script file currently being evaluated is unknown" true
+}
+
+set path [file dirname $script]
+
+###############################################################################
+
+#
+# NOTE: Process and verify all the command line arguments.
+#
+set argc [llength $argv]
+if {$argc > 1} then {fail}
+
+if {$argc == 1} then {
+  set fileName [lindex $argv 0]
+} else {
+  set fileName [file join [file dirname $path] sqlite-UWP-output.vsix]
+}
+
+if {[string length $fileName] == 0} then {
+  fail "invalid VSIX file name"
+}
+
+if {![file exists $fileName] || ![file isfile $fileName]} then {
+  fail [appendArgs "VSIX file \"" $fileName "\" does not exist"]
+}
+
+set envVarName VS140COMNTOOLS
+set vsDirectory [getEnvironmentVariable $envVarName]
+
+if {[string length $vsDirectory] == 0} then {
+  fail [appendArgs \
+      "Visual Studio 2015 environment variable \"" $envVarName "\" missing"]
+}
+
+if {![file exists $vsDirectory] || ![file isdirectory $vsDirectory]} then {
+  fail [appendArgs \
+      "Visual Studio 2015 directory \"" $vsDirectory \
+      "\" does not exist"]
+}
+
+set vsixInstaller [file join [file dirname $vsDirectory] IDE VSIXInstaller.exe]
+
+if {![file exists $vsixInstaller] || ![file isfile $vsixInstaller]} then {
+  fail [appendArgs \
+      "Visual Studio 2015 VSIX installer \"" $vsixInstaller \
+      "\" does not exist"]
+}
+
+set envVarName ProgramFiles
+set programFiles [getEnvironmentVariable $envVarName]
+
+if {[string length $programFiles] == 0} then {
+  fail [appendArgs \
+      "Windows environment variable \"" $envVarName "\" missing"]
+}
+
+if {![file exists $programFiles] || ![file isdirectory $programFiles]} then {
+  fail [appendArgs \
+      "Program Files directory \"" $programFiles "\" does not exist"]
+}
+
+set msBuild [file join $programFiles MSBuild 14.0 Bin MSBuild.exe]
+
+if {![file exists $msBuild] || ![file isfile $msBuild]} then {
+  fail [appendArgs \
+      "MSBuild 14.0 executable file \"" $msBuild "\" does not exist"]
+}
+
+set temporaryDirectory [getTemporaryPath]
+
+if {[string length $temporaryDirectory] == 0 || \
+    ![file exists $temporaryDirectory] || \
+    ![file isdirectory $temporaryDirectory]} then {
+  fail "cannot locate a usable temporary directory"
+}
+
+set installLogFileName [appendArgs \
+    [file rootname [file tail $fileName]] -install- [pid] .log]
+
+set buildLogFileName [appendArgs \
+    [file rootname [file tail $fileName]] -build- [pid] .log]
+
+set uninstallLogFileName [appendArgs \
+    [file rootname [file tail $fileName]] -uninstall- [pid] .log]
+
+set command(1) [list exec [file nativename $vsixInstaller] /quiet /norepair]
+lappend command(1) [appendArgs /logFile: $installLogFileName]
+lappend command(1) [file nativename $fileName]
+
+set command(2) [list exec [file nativename $msBuild]]
+lappend command(2) [file nativename [file join $path vsixtest.sln]]
+lappend command(2) /target:Rebuild /property:Configuration=Release
+
+lappend command(2) [appendArgs \
+    /logger:FileLogger,Microsoft.Build.Engine\;Logfile= \
+    [file nativename [file join $temporaryDirectory $buildLogFileName]] \
+    \;Verbosity=diagnostic]
+
+set command(3) [list exec [file nativename $vsixInstaller] /quiet /norepair]
+lappend command(3) [appendArgs /logFile: $uninstallLogFileName]
+lappend command(3) [appendArgs /uninstall:SQLite.UWP.2015]
+
+puts stdout [appendArgs \
+    "Install log will be \"" [file nativename [file join \
+    $temporaryDirectory $installLogFileName]] "\"."]
+
+puts stdout [appendArgs \
+    "Build log will be \"" [file nativename [file join \
+    $temporaryDirectory $buildLogFileName]] "\"."]
+
+puts stdout [appendArgs \
+    "Uninstall log will be \"" [file nativename [file join \
+    $temporaryDirectory $uninstallLogFileName]] "\"."]
+
+puts stdout [appendArgs \
+    "First command is \"" $command(1) "\"."]
+
+puts stdout [appendArgs \
+    "Second command is \"" $command(2) "\"."]
+
+puts stdout [appendArgs \
+    "Third command is \"" $command(3) "\"."]
+
+# eval exec $command(1)
+# eval exec $command(2)
+# eval exec $command(3)
diff --git a/vsixtest/vsixtest.vcxproj b/vsixtest/vsixtest.vcxproj
new file mode 100644 (file)
index 0000000..a7b4fd3
--- /dev/null
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{60bb14a5-0871-4656-bc38-4f0958230f9a}</ProjectGuid>\r
+    <RootNamespace>vsixtest</RootNamespace>\r
+    <DefaultLanguage>en-US</DefaultLanguage>\r
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>\r
+    <AppContainerApplication>true</AppContainerApplication>\r
+    <ApplicationType>Windows Store</ApplicationType>\r
+    <WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>\r
+    <WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion>\r
+    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|ARM">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>ARM</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|x64">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|ARM">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>ARM</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|x64">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>\r
+  </PropertyGroup>\r
+\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+\r
+  <PropertyGroup Label="UserMacros" />\r
+\r
+  <PropertyGroup>\r
+    \r
+    <PackageCertificateKeyFile>vsixtest_TemporaryKey.pfx</PackageCertificateKeyFile>\r
+    \r
+  </PropertyGroup>\r
+\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <ClCompile>\r
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>\r
+      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+\r
+  <ItemGroup>\r
+    <ClInclude Include="pch.h" />\r
+    <ClInclude Include="App.xaml.h">\r
+        <DependentUpon>App.xaml</DependentUpon>\r
+    </ClInclude>\r
+    <ClInclude Include="MainPage.xaml.h">\r
+        <DependentUpon>MainPage.xaml</DependentUpon>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+\r
+  <ItemGroup>\r
+    <ApplicationDefinition Include="App.xaml">\r
+      <SubType>Designer</SubType>\r
+    </ApplicationDefinition>\r
+    <Page Include="MainPage.xaml">\r
+      <SubType>Designer</SubType>\r
+    </Page>\r
+  </ItemGroup>\r
+\r
+  <ItemGroup>\r
+    <AppxManifest Include="Package.appxmanifest">\r
+      <SubType>Designer</SubType>\r
+    </AppxManifest>\r
+    \r
+    <None Include="vsixtest_TemporaryKey.pfx" />\r
+    \r
+  </ItemGroup>\r
+\r
+  <ItemGroup>\r
+    <Image Include="Assets\LockScreenLogo.scale-200.png" />\r
+    <Image Include="Assets\SplashScreen.scale-200.png" />\r
+    <Image Include="Assets\Square150x150Logo.scale-200.png" />\r
+    <Image Include="Assets\Square44x44Logo.scale-200.png" />\r
+    <Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />\r
+    <Image Include="Assets\StoreLogo.png" />\r
+    <Image Include="Assets\Wide310x150Logo.scale-200.png" />\r
+  </ItemGroup>\r
+\r
+  <ItemGroup>\r
+    <ClCompile Include="App.xaml.cpp">\r
+        <DependentUpon>App.xaml</DependentUpon>\r
+    </ClCompile>\r
+    <ClCompile Include="MainPage.xaml.cpp">\r
+        <DependentUpon>MainPage.xaml</DependentUpon>\r
+    </ClCompile>\r
+\r
+    <ClCompile Include="pch.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+\r
+</Project>\r
diff --git a/vsixtest/vsixtest.vcxproj.filters b/vsixtest/vsixtest.vcxproj.filters
new file mode 100644 (file)
index 0000000..a4a1a30
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Common">\r
+      <UniqueIdentifier>60bb14a5-0871-4656-bc38-4f0958230f9a</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="Assets">\r
+      <UniqueIdentifier>e6271362-8f96-476d-907f-4da227b02435</UniqueIdentifier>\r
+      <Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>\r
+    </Filter>\r
+    <Image Include="Assets\Logo.scale-100.png">\r
+      <Filter>Assets</Filter>\r
+    </Image>\r
+    <Image Include="Assets\SmallLogo.scale-100.png">\r
+      <Filter>Assets</Filter>\r
+    </Image>\r
+    <Image Include="Assets\StoreLogo.scale-100.png">\r
+      <Filter>Assets</Filter>\r
+    </Image>\r
+    <Image Include="Assets\SplashScreen.scale-100.png">\r
+      <Filter>Assets</Filter>\r
+    </Image>\r
+  </ItemGroup>\r
+</Project>\r
diff --git a/vsixtest/vsixtest_TemporaryKey.pfx b/vsixtest/vsixtest_TemporaryKey.pfx
new file mode 100644 (file)
index 0000000..e6787bc
Binary files /dev/null and b/vsixtest/vsixtest_TemporaryKey.pfx differ