microsoft / testwinrt Goto Github PK
View Code? Open in Web Editor NEWWinRT test component
License: MIT License
WinRT test component
License: MIT License
Need event test cases - add/remove/invoke
The CI pipeline builds Test.sln, but a) it's using old versions of cppwinrt and b) it doesn't actually run any of the tests
It would be good to run the tests here
This would help catch regressions in cppwinrt and cswinrt themselves. Related to #45.
Should move the char field from Blittable to NonBlittable
Need test cases for statics and factories
microsoft/CsWinRT#303 adds some non agile tests that probably can be ported here. We should have some tests here to test agile references on non agile objects and non agile delegates.
the testwinrt code has this test:
void Collection4Call(Collection4Handler const& handler)
{
IMapView<hstring, hstring> a = single_threaded_map_view<hstring, hstring>(std::map<hstring, hstring>{ {L"apples", L"1"}, { L"oranges",L"2" }, { L"pears",L"3" } });
IMapView<hstring, hstring> b;
IMapView<hstring, hstring> c = handler(a, b);
TEST_REQUIRE_N(L"Collection", 4, a != b && a != c);
TEST_REQUIRE_N(L"Collection", 4, std::equal(begin(a), end(a), begin(b), end(b)));
TEST_REQUIRE_N(L"Collection", 4, std::equal(begin(a), end(a), begin(c), end(c)));
TEST_REQUIRE_N(L"Collection", 4, c.Lookup(L"apples") == L"1");
TEST_REQUIRE_N(L"Collection", 4, c.HasKey(L"oranges"));
IMapView<hstring, hstring> d;
IMapView<hstring, hstring> e;
c.Split(d, e);
TEST_REQUIRE_N(L"Collection", 4, d.Size() && e.Size());
}
However, IMapSplitView<K,V>.Split() is broken in cppwinrt and just nulls out d and e, which will make the TEST_REQUIRE_N at the end fail.
We would need a way to disable this test for cppwinrt
Some projections have complex logic around factory methods like IMap::GetView, IMapView::Split, IVector::GetView.
Also, special collections need coverage: StringMap, PropertySet, ValueSet (along with their GetView methods).
This would help catch regressions in cppwinrt and cswinrt themselves. See microsoft/cppwinrt#887.
All combinations - in/out, single/array, etc. There are a number of WinRT APIs that permit null parameters.
Suggested by @Scottj1s
The components test_component_base and test_component_fast do not have the TestRunner wired up like like TestComponent. It would be good to have this for all components to make sure we have 100% coverage when testing.
IInspectable/Object projections are often special cased, so should be exercised specifically - enumerating IIterable in both directions, etc.
TestRunner::TestSelf throws "class not registered"
The DLLs are not automatically copied to the exe's output folder by the build
In C#, TestComponent.Blittable is actually a non-blittable struct, due to the Boolean A field. Should move that field to the NonBlittable struct to ensure test coverage of both categories.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.