Fix EN_addpattern

Closes #231. Also adds unit test for the function.
This commit is contained in:
Elad Salomons
2018-08-29 15:14:49 +03:00
parent 045742afe5
commit edf4a09ebe
2 changed files with 24 additions and 2 deletions

View File

@@ -3103,7 +3103,7 @@ int DLLEXPORT EN_addpattern(EN_ProjectHandle ph, char *id) {
if (!p->Openflag)
return set_error(p->error_handle, 102);
if (ENgetpatternindex(id, &i) == 0)
if (EN_getpatternindex(ph, id, &i) == 0)
return set_error(p->error_handle, 215);
/* Check that id name is not too long */
@@ -3156,7 +3156,7 @@ int DLLEXPORT EN_addpattern(EN_ProjectHandle ph, char *id) {
for (i = 0; i <= Npats; i++)
free(Pattern[i].F);
free(Pattern);
Pattern = tmpPat;
net->Pattern = tmpPat;
net->Npats = n;
par->MaxPats = n;
return set_error(p->error_handle, 0);

View File

@@ -204,4 +204,26 @@ BOOST_FIXTURE_TEST_CASE(test_progressive_stepping, Fixture)
}
BOOST_FIXTURE_TEST_CASE(test_addpattern, Fixture)
{
int pat_index, n_patterns_1, n_patterns_2;
// get the number of current patterns
error = EN_getcount(ph, EN_PATCOUNT, &n_patterns_1);
BOOST_REQUIRE(error == 0);
// add a new pattern
error = EN_addpattern(ph, 'new_pattern');
BOOST_REQUIRE(error == 0);
// get the new patterns count, shoul dbe the old one + 1
error = EN_getcount(ph, EN_PATCOUNT, &n_patterns_2);
BOOST_REQUIRE(error == 0);
BOOST_REQUIRE(n_patterns_1 + 1 == n_patterns_2);
// gwt the new patterns index, should be as the number of patterns
error = EN_getpatternindex(ph, 'new_pattern', &pat_index);
BOOST_REQUIRE(pat_index == n_patterns_2);
}
BOOST_AUTO_TEST_SUITE_END()