Bugfix for ricardian contracts being generated

This commit is contained in:
766C6164
2022-08-16 18:09:47 -04:00
parent 7e9a52a086
commit 0cf888a61e
7 changed files with 69 additions and 5 deletions
@@ -0,0 +1,29 @@
{
"____comment": "This file was generated with eosio-abigen. DO NOT EDIT ",
"version": "eosio::abi/1.2",
"types": [],
"structs": [
{
"name": "test",
"base": "",
"fields": []
}
],
"actions": [
{
"name": "test",
"type": "test",
"ricardian_contract": "---\nspec-version: 0.0.2\ntitle: test\nsummary: This method does nothing on purpose.\nicon:\n---\n\nThis test checks ricardian contract was generated succesfully."
}
],
"tables": [],
"kv_tables": {},
"ricardian_clauses": [
{
"id": "Disclaimer",
"body": "This test checks ricardian contract was generated succesfully."
}
],
"variants": [],
"action_results": []
}
@@ -0,0 +1,3 @@
<h1 class="clause">Disclaimer</h1>
This test checks ricardian contract was generated succesfully.
@@ -0,0 +1,9 @@
<h1 class="contract">test</h1>
---
spec-version: 0.0.2
title: test
summary: This method does nothing on purpose.
icon:
---
This test checks ricardian contract was generated succesfully.
@@ -0,0 +1,12 @@
#include <eosio/eosio.hpp>
using namespace eosio;
class [[eosio::contract]] ricardian_contract_test : public contract {
public:
using contract::contract;
[[eosio::action]]
void test() {
}
};
@@ -0,0 +1,10 @@
{
"tests" : [
{
"compile_flags" : ["-R={cwd}"],
"expected" : {
"abi-file" : "ricardian_contract_test.abi"
}
}
]
}
+4 -4
View File
@@ -768,8 +768,8 @@ namespace eosio { namespace cdt {
virtual bool VisitCXXMethodDecl(clang::CXXMethodDecl* decl) {
if (!has_added_clauses) {
ag.add_clauses(parse_clauses());
ag.add_contracts(parse_contracts());
ag.add_clauses(ag.parse_clauses());
ag.add_contracts(ag.parse_contracts());
has_added_clauses = true;
}
@@ -784,8 +784,8 @@ namespace eosio { namespace cdt {
}
virtual bool VisitCXXRecordDecl(clang::CXXRecordDecl* decl) {
if (!has_added_clauses) {
ag.add_clauses(parse_clauses());
ag.add_contracts(parse_contracts());
ag.add_clauses(ag.parse_clauses());
ag.add_contracts(ag.parse_contracts());
has_added_clauses = true;
}
if ((decl->isEosioAction() || decl->isEosioTable()) && ag.is_eosio_contract(decl, ag.get_contract_name())) {
+2 -1
View File
@@ -44,6 +44,7 @@ class Test(ABC):
def run(self):
cf = self.test_json.get("compile_flags")
args = cf if cf else []
args = [arg.replace("{cwd}", self.test_suite.directory) for arg in args]
cdt_cpp = os.path.join(self.test_suite.cdt_path, "cdt-cpp")
self._run(cdt_cpp, args)
@@ -202,5 +203,5 @@ class AbigenFailTest(Test):
command.extend(args)
res = subprocess.run(command, capture_output=True)
self.handle_test_result(res, expected_pass=False)
return res