2009-07-30 02:27:20 +04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#ifndef TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
|
|
|
#define TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
|
|
|
|
2008-09-04 02:20:39 +04:00
|
|
|
#include <string>
|
|
|
|
|
2009-05-23 01:52:31 +04:00
|
|
|
namespace YAML { class Emitter; }
|
|
|
|
|
2008-09-04 02:20:39 +04:00
|
|
|
namespace Test {
|
2009-05-31 10:36:01 +04:00
|
|
|
void RunAll();
|
2009-05-23 01:52:31 +04:00
|
|
|
|
2009-05-31 10:36:01 +04:00
|
|
|
bool RunParserTests();
|
2009-05-23 01:52:31 +04:00
|
|
|
bool RunEmitterTests();
|
2009-05-31 10:36:01 +04:00
|
|
|
|
|
|
|
namespace Parser {
|
|
|
|
// scalar tests
|
|
|
|
void SimpleScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void MultiLineScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void LiteralScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void FoldedScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void ChompedFoldedScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void ChompedLiteralScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void FoldedScalarWithIndent(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void ColonScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void QuotedScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void CommaScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void DashScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
void URLScalar(std::string& inputScalar, std::string& desiredOutput);
|
|
|
|
|
|
|
|
// misc tests
|
|
|
|
bool SimpleSeq();
|
|
|
|
bool SimpleMap();
|
|
|
|
bool FlowSeq();
|
|
|
|
bool FlowMap();
|
2009-09-03 01:39:57 +04:00
|
|
|
bool FlowMapWithOmittedKey();
|
|
|
|
bool FlowMapWithOmittedValue();
|
2009-07-25 22:58:41 +04:00
|
|
|
bool QuotedSimpleKeys();
|
2009-08-25 02:56:54 +04:00
|
|
|
bool CompressedMapAndSeq();
|
2009-07-30 10:49:09 +04:00
|
|
|
bool NullBlockSeqEntry();
|
|
|
|
bool NullBlockMapKey();
|
|
|
|
bool NullBlockMapValue();
|
2009-08-25 02:56:54 +04:00
|
|
|
bool SimpleAlias();
|
|
|
|
bool AliasWithNull();
|
2009-08-26 20:15:27 +04:00
|
|
|
bool ExplicitDoc();
|
|
|
|
bool MultipleDocs();
|
2009-08-26 20:23:58 +04:00
|
|
|
bool ExplicitEndDoc();
|
|
|
|
bool MultipleDocsWithSomeExplicitIndicators();
|
2009-05-31 10:36:01 +04:00
|
|
|
}
|
2009-05-23 01:52:31 +04:00
|
|
|
|
|
|
|
namespace Emitter {
|
|
|
|
// correct emitting
|
|
|
|
void SimpleScalar(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleSeq(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleFlowSeq(YAML::Emitter& ouptut, std::string& desiredOutput);
|
|
|
|
void EmptyFlowSeq(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void NestedBlockSeq(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void NestedFlowSeq(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleFlowMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void MapAndList(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void ListAndMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void NestedBlockMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void NestedFlowMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void MapListMix(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleLongKey(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SingleLongKey(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void ComplexLongKey(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void AutoLongKey(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void ScalarFormat(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void AutoLongKeyScalar(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void LongKeyFlowMap(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void BlockMapAsKey(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void AliasAndAnchor(YAML::Emitter& out, std::string& desiredOutput);
|
2009-08-25 02:56:54 +04:00
|
|
|
void AliasAndAnchorWithNull(YAML::Emitter& out, std::string& desiredOutput);
|
2009-05-23 01:52:31 +04:00
|
|
|
void ComplexDoc(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void STLContainers(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleComment(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void MultiLineComment(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void ComplexComments(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void Indentation(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void SimpleGlobalSettings(YAML::Emitter& out, std::string& desiredOutput);
|
|
|
|
void ComplexGlobalSettings(YAML::Emitter& out, std::string& desiredOutput);
|
2009-07-30 08:42:27 +04:00
|
|
|
void Null(YAML::Emitter& out, std::string& desiredOutput);
|
2009-05-23 01:52:31 +04:00
|
|
|
|
|
|
|
// incorrect emitting
|
|
|
|
void ExtraEndSeq(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void ExtraEndMap(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void BadSingleQuoted(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void InvalidAnchor(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void InvalidAlias(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void MissingKey(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void MissingValue(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void UnexpectedKey(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
void UnexpectedValue(YAML::Emitter& out, std::string& desiredError);
|
|
|
|
}
|
2008-09-04 02:20:39 +04:00
|
|
|
}
|
2009-07-30 02:27:20 +04:00
|
|
|
|
|
|
|
#endif // TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|