Rename test-abi to test-symbols, start verifying symbols are documented

We keep forgetting to update `apidoc/ostree-sections.txt`, so let's
start enforcing it.  Of course it turns out we had some bugs here
like symbols marked as public but never implemented, etc.  Those
are fixed in the prior commits.

Closes: #263
Approved by: giuseppe
This commit is contained in:
Colin Walters 2016-04-15 15:49:05 -04:00 committed by Colin Walters (automation)
parent 6923c088c5
commit e9a1809c4d
4 changed files with 51 additions and 8 deletions

View File

@ -28,7 +28,7 @@ TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
PATH=$$(cd $(top_builddir) && pwd):$${PATH} \
$(NULL)
uninstalled_test_scripts = tests/test-abi.sh
uninstalled_test_scripts = tests/test-symbols.sh
test_scripts = \
tests/test-basic.sh \

View File

@ -27,7 +27,9 @@ OstreeBootconfigParser
ostree_bootconfig_parser_new
ostree_bootconfig_parser_clone
ostree_bootconfig_parser_parse
ostree_bootconfig_parser_parse_at
ostree_bootconfig_parser_write
ostree_bootconfig_parser_write_at
ostree_bootconfig_parser_set
ostree_bootconfig_parser_get
<SUBSECTION Standard>
@ -97,6 +99,8 @@ ostree_checksum_inplace_from_bytes
ostree_checksum_inplace_to_bytes
ostree_checksum_bytes_peek
ostree_checksum_bytes_peek_validate
ostree_checksum_b64_inplace_from_bytes
ostree_checksum_b64_inplace_to_bytes
ostree_cmp_checksum_bytes
ostree_validate_rev
ostree_parse_refspec
@ -109,6 +113,7 @@ ostree_object_to_string
ostree_object_from_string
ostree_content_stream_parse
ostree_content_file_parse
ostree_content_file_parse_at
ostree_raw_file_to_content_stream
ostree_checksum_file_from_input
ostree_checksum_file
@ -140,11 +145,14 @@ ostree_deployment_get_bootcsum
ostree_deployment_get_bootserial
ostree_deployment_get_bootconfig
ostree_deployment_get_origin
ostree_deployment_get_origin_relpath
ostree_deployment_get_unlocked
ostree_deployment_set_index
ostree_deployment_set_bootserial
ostree_deployment_set_bootconfig
ostree_deployment_set_origin
ostree_deployment_clone
ostree_deployment_unlocked_state_to_string
<SUBSECTION Standard>
OSTREE_DEPLOYMENT
OSTREE_IS_DEPLOYMENT
@ -226,6 +234,7 @@ ostree_repo_create
ostree_repo_get_path
ostree_repo_get_mode
ostree_repo_get_config
ostree_repo_get_dfd
ostree_repo_copy_config
ostree_repo_remote_add
ostree_repo_remote_delete
@ -237,6 +246,9 @@ ostree_repo_remote_get_gpg_verify
ostree_repo_remote_get_gpg_verify_summary
ostree_repo_remote_gpg_import
ostree_repo_remote_fetch_summary
ostree_repo_get_remote_boolean_option
ostree_repo_get_remote_list_option
ostree_repo_get_remote_option
ostree_repo_get_parent
ostree_repo_write_config
OstreeRepoTransactionStats
@ -247,6 +259,8 @@ ostree_repo_abort_transaction
ostree_repo_transaction_set_refspec
ostree_repo_transaction_set_ref
ostree_repo_set_ref_immediate
ostree_repo_set_cache_dir
ostree_repo_sign_delta
ostree_repo_has_object
ostree_repo_write_metadata
ostree_repo_write_metadata_async
@ -269,6 +283,8 @@ ostree_repo_load_object_stream
ostree_repo_query_object_storage_size
ostree_repo_import_object_from
ostree_repo_import_object_from_with_trust
ostree_repo_import_archive_to_mtree
ostree_repo_export_tree_to_archive
ostree_repo_delete_object
OstreeRepoCommitFilterResult
OstreeRepoCommitFilter
@ -284,6 +300,7 @@ ostree_repo_commit_modifier_unref
ostree_repo_devino_cache_new
ostree_repo_devino_cache_ref
ostree_repo_devino_cache_unref
ostree_repo_devino_cache_get_type
ostree_repo_write_directory_to_mtree
ostree_repo_write_dfd_to_mtree
ostree_repo_write_archive_to_mtree
@ -309,8 +326,16 @@ ostree_repo_static_delta_execute_offline
ostree_repo_traverse_new_reachable
ostree_repo_traverse_commit
ostree_repo_traverse_commit_union
ostree_repo_commit_traverse_iter_cleanup
ostree_repo_commit_traverse_iter_clear
ostree_repo_commit_traverse_iter_get_dir
ostree_repo_commit_traverse_iter_get_file
ostree_repo_commit_traverse_iter_init_commit
ostree_repo_commit_traverse_iter_init_dirtree
ostree_repo_commit_traverse_iter_next
OstreeRepoPruneFlags
ostree_repo_prune
ostree_repo_prune_static_deltas
OstreeRepoPullFlags
ostree_repo_pull
ostree_repo_pull_one_dir
@ -318,6 +343,7 @@ ostree_repo_pull_with_options
ostree_repo_pull_default_console_progress_changed
ostree_repo_sign_commit
ostree_repo_append_gpg_signature
ostree_repo_add_gpg_signature_summary
ostree_repo_verify_commit
ostree_repo_verify_commit_ext
ostree_repo_verify_summary
@ -364,8 +390,11 @@ ostree_sepolicy_new
ostree_sepolicy_get_path
ostree_sepolicy_get_name
ostree_sepolicy_get_label
ostree_sepolicy_get_csum
OstreeSePolicyRestoreconFlags
ostree_sepolicy_restorecon
ostree_sepolicy_setfscreatecon
ostree_sepolicy_fscreatecon_cleanup
<SUBSECTION Standard>
OSTREE_SEPOLICY
OSTREE_IS_SEPOLICY
@ -386,6 +415,7 @@ ostree_sysroot_try_lock
ostree_sysroot_lock_async
ostree_sysroot_lock_finish
ostree_sysroot_unlock
ostree_sysroot_unload
ostree_sysroot_get_fd
ostree_sysroot_ensure_initialized
ostree_sysroot_get_bootversion
@ -393,13 +423,17 @@ ostree_sysroot_get_subbootversion
ostree_sysroot_get_deployments
ostree_sysroot_get_booted_deployment
ostree_sysroot_get_deployment_directory
ostree_sysroot_get_deployment_dirpath
ostree_sysroot_get_deployment_origin_path
ostree_sysroot_cleanup
ostree_sysroot_prepare_cleanup
ostree_sysroot_get_repo
ostree_sysroot_init_osname
ostree_sysroot_deployment_set_kargs
ostree_sysroot_deployment_set_mutable
ostree_sysroot_deployment_unlock
ostree_sysroot_write_deployments
ostree_sysroot_write_origin_file
ostree_sysroot_deploy_tree
ostree_sysroot_get_merge_deployment
ostree_sysroot_origin_new_from_refspec

View File

@ -323,11 +323,6 @@ global:
ostree_deployment_unlocked_state_to_string;
} LIBOSTREE_2016.3;
/* NOTE NOTE NOTE
* Versions above here are released. Only add symbols below this line.
* NOTE NOTE NOTE
*/
LIBOSTREE_2016.5 {
global:
ostree_repo_import_object_from_with_trust;
@ -337,3 +332,8 @@ global:
ostree_repo_get_remote_boolean_option;
ostree_repo_set_cache_dir;
} LIBOSTREE_2016.4;
/* NOTE NOTE NOTE
* Versions above here are released. Only add symbols below this line.
* NOTE NOTE NOTE
*/

View File

@ -19,10 +19,19 @@
set -euo pipefail
echo '1..1'
echo '1..2'
echo "Verifying all expected symbols are actually exported..."
grep ' ostree_[A-Za-z0-9_]*;' ${G_TEST_SRCDIR}/src/libostree/libostree.sym | sed -e 's,^ *\([A-Za-z0-9_]*\);,\1,' | sort -u > expected-symbols.txt
eu-readelf -a ${G_TEST_BUILDDIR}/.libs/libostree-1.so | grep 'FUNC.*GLOBAL.*DEFAULT.*@@LIBOSTREE_' | sed -e 's,^.* \(ostree_[A-Za-z0-9_]*\)@@LIBOSTREE_[0-9_.]*,\1,' |sort -u > found-symbols.txt
diff -u expected-symbols.txt found-symbols.txt
echo "ok exports"
echo 'ok'
# cmd__private__ is private. The fetcher symbol should not have been made public.
grep -E -v '(ostree_cmd__private__)|(ostree_fetcher_config_flags_get_type)' found-symbols.txt > expected-documented.txt
echo "Verifying all public symbols are documented:"
grep '^ostree_' ${G_TEST_SRCDIR}/apidoc/ostree-sections.txt |sort -u > found-documented.txt
diff -u expected-documented.txt found-documented.txt
echo 'ok documented symbols'