Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Icecast-Server
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spr0cketeer
Icecast-Server
Commits
f82df09d
Commit
f82df09d
authored
Jul 27, 2018
by
Philipp Schafft
🦁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Feature: Added tests for refobject
parent
df9af991
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
155 additions
and
2 deletions
+155
-2
tests/Makefile.am
tests/Makefile.am
+6
-2
tests/ctest_refobject.c
tests/ctest_refobject.c
+149
-0
No files found.
tests/Makefile.am
View file @
f82df09d
...
...
@@ -7,7 +7,8 @@ TESTS = \
startup.test
\
admin.test
\
ctest_suite.test
\
ctest_resourcematch.test
ctest_resourcematch.test
\
ctest_refobject.test
EXTRA_DIST
=
$(TESTS)
...
...
@@ -15,8 +16,11 @@ EXTRA_DIST += \
icecast.xml
\
on-connect.sh
check_PROGRAMS
=
ctest_suite.test ctest_resourcematch.test
check_PROGRAMS
=
ctest_suite.test ctest_resourcematch.test
ctest_refobject.test
noinst_HEADERS
=
ctest_lib.h
ctest_suite_test_SOURCES
=
ctest_suite.c ctest_lib.c
ctest_resourcematch_test_SOURCES
=
ctest_resourcematch.c ctest_lib.c ../src/resourcematch.c
ctest_refobject_test_SOURCES
=
ctest_refobject.c ctest_lib.c ../src/refobject.c
ctest_refobject_test_DEPENDENCIES
=
../src/common/thread/libicethread.la ../src/common/avl/libiceavl.la
ctest_refobject_test_LDADD
=
$(ctest_refobject_test_DEPENDENCIES)
tests/ctest_refobject.c
0 → 100644
View file @
f82df09d
/* Icecast
*
* This program is distributed under the GNU General Public License, version 2.
* A copy of this license is included with this source.
*
* Copyright 2018, Philipp "ph3-der-loewe" Schafft <lion@lion.leolix.org>,
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h>
#include "ctest_lib.h"
#include "../src/refobject.h"
static
void
test_ptr
(
void
)
{
refobject_t
a
;
a
=
REFOBJECT_NULL
;
ctest_test
(
"NULL is NULL"
,
REFOBJECT_IS_NULL
(
a
));
if
(
!
REFOBJECT_IS_NULL
(
a
))
ctest_bailed_out
();
}
static
void
test_create_ref_unref
(
void
)
{
refobject_t
a
;
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
NULL
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ctest_test
(
"referenced"
,
refobject_ref
(
a
)
==
0
);
ctest_test
(
"un-referenced (1 of 2)"
,
refobject_unref
(
a
)
==
0
);
ctest_test
(
"un-referenced (2 of 2)"
,
refobject_unref
(
a
)
==
0
);
}
static
void
test_name
(
void
)
{
refobject_t
a
;
const
char
*
name
=
"test object name"
;
const
char
*
ret
;
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
NULL
,
name
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ret
=
refobject_get_name
(
a
);
ctest_test
(
"get name"
,
ret
!=
NULL
);
ctest_test
(
"name match"
,
strcmp
(
name
,
ret
)
==
0
);
ctest_test
(
"un-referenced"
,
refobject_unref
(
a
)
==
0
);
}
static
void
test_userdata
(
void
)
{
refobject_t
a
;
int
tmp
=
0
;
void
*
userdata
=
&
tmp
;
void
*
ret
;
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
NULL
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ret
=
refobject_get_userdata
(
a
);
ctest_test
(
"get userdata"
,
ret
==
NULL
);
ctest_test
(
"set userdata"
,
refobject_set_userdata
(
a
,
userdata
)
==
0
);
ret
=
refobject_get_userdata
(
a
);
ctest_test
(
"get userdata"
,
ret
==
userdata
);
ctest_test
(
"clearing userdata"
,
refobject_set_userdata
(
a
,
NULL
)
==
0
);
ret
=
refobject_get_userdata
(
a
);
ctest_test
(
"get userdata"
,
ret
==
NULL
);
ctest_test
(
"un-referenced"
,
refobject_unref
(
a
)
==
0
);
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
userdata
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ret
=
refobject_get_userdata
(
a
);
ctest_test
(
"get userdata"
,
ret
==
userdata
);
ctest_test
(
"clearing userdata"
,
refobject_set_userdata
(
a
,
NULL
)
==
0
);
ret
=
refobject_get_userdata
(
a
);
ctest_test
(
"get userdata"
,
ret
==
NULL
);
ctest_test
(
"un-referenced"
,
refobject_unref
(
a
)
==
0
);
}
static
void
test_associated
(
void
)
{
refobject_t
a
,
b
;
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
NULL
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
b
=
refobject_new
(
sizeof
(
refobject_base_t
),
NULL
,
NULL
,
NULL
,
a
);
ctest_test
(
"refobject created with associated"
,
!
REFOBJECT_IS_NULL
(
b
));
ctest_test
(
"un-referenced (1 of 2)"
,
refobject_unref
(
b
)
==
0
);
ctest_test
(
"un-referenced (2 of 2)"
,
refobject_unref
(
a
)
==
0
);
}
static
void
test_freecb
(
void
)
{
refobject_t
a
;
size_t
called
=
0
;
void
freecb
(
refobject_t
self
,
void
**
userdata
)
{
called
++
;
}
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
freecb
,
NULL
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ctest_test
(
"un-referenced"
,
refobject_unref
(
a
)
==
0
);
ctest_test
(
"freecb called"
,
called
==
1
);
called
=
0
;
a
=
refobject_new
(
sizeof
(
refobject_base_t
),
freecb
,
NULL
,
NULL
,
REFOBJECT_NULL
);
ctest_test
(
"refobject created"
,
!
REFOBJECT_IS_NULL
(
a
));
ctest_test
(
"referenced"
,
refobject_ref
(
a
)
==
0
);
ctest_test
(
"freecb uncalled"
,
called
==
0
);
ctest_test
(
"un-referenced (1 of 2)"
,
refobject_unref
(
a
)
==
0
);
ctest_test
(
"freecb uncalled"
,
called
==
0
);
ctest_test
(
"un-referenced (2 of 2)"
,
refobject_unref
(
a
)
==
0
);
ctest_test
(
"freecb called"
,
called
==
1
);
}
int
main
(
void
)
{
ctest_init
();
test_ptr
();
if
(
ctest_bailed_out
())
{
ctest_fin
();
return
1
;
}
test_create_ref_unref
();
test_name
();
test_userdata
();
test_associated
();
test_freecb
();
ctest_fin
();
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment