It’s definitely not idiomatic C, despite being fully valid (multiple declarations are okay, multiple definitions are not). It’s unnecessary, so the code will still work perfectly without it.
If at all, perhaps the author meant to do
void test (int *int_pointer);
int main (void) {
...
}
in case the function definition was put after main ()
.