LUMIERA.clone/tests/core/steam/asset/compoundmediatest.cpp
Ichthyostega 9c74466778 Tests: build an link a test-support library
This is something I wanted to clean-up since a very long time indeed,
but always postponed it, since it requires a lot of nasty clean-up and disentangling....

Several parts had been stashed away into `src/lib/test`, which are not really related:
 * the testrunner and testsuite builder
 * generic helper utilities
 * specialised test-support facilities, e.g. the EventLog

This changeset introduces a new top-level test folder and a namespace `::test`
Code from this folder is linked into a shared library `libtestsupport.so`,
which resides in the linkage hierarchy between »Vessel« and »Vault«,
yet is no longer part of the Lumiera application and only linked into the test-suite.
2026-03-06 23:16:32 +01:00

99 lines
2.6 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
CompoundMedia(Test) - handling multichannel Media Assets
Copyright (C)
2008, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your
  option) any later version. See the file COPYING for further details.
* *****************************************************************/
/** @file compoundmediatest.cpp
** unit test \ref CompoundMedia_test
*/
#include "include/logging.h"
#include "test/run.hpp"
#include "lib/util.hpp"
#include "steam/assetmanager.hpp"
#include "steam/asset/media.hpp"
#include "steam/asset/proc.hpp"
#include "steam/asset/asset-diagnostics.hpp"
using util::isnil;
using std::string;
namespace steam {
namespace asset{
namespace test {
/*******************************************************************//**
* Verifying the special operations available for compound media assets
* comprised of several elementary media assets.
*/
class CompoundMedia_test : public Test
{
virtual void run(Arg arg)
{
buildCompound();
modifyCompound();
verifyClipStructure();
if (!isnil (arg))
dumpAssetManager();
TRACE (asset_mem, "leaving CreateAsset_test::run()");
}
typedef shared_ptr<asset::Media> PM;
/** @test building a compound media asset by using a special
* factory, normally intended for loading existing sessions.
*/
void buildCompound()
{
UNIMPLEMENTED ("create new compound media");
}
/** @test adding and removing elementary media.
*/
void modifyCompound()
{
UNIMPLEMENTED ("add and remove elementary media to compound media asset");
}
/** @test create a (compound) clip from some compound media asset
* and verify the clip mirrors the media asset's structure
*/
void verifyClipStructure()
{
UNIMPLEMENTED ("create compound clip from compound media and verify structure");
}
bool checkProperties (PM object, Asset::Ident identity, string filename)
{
return identity == object->ident
and filename == object->getFilename();
}
};
/** Register this test class... */
LAUNCHER (CompoundMedia_test, "unit asset");
}}} // namespace steam::asset::test